Làm thế nào tôi có thể đọc ô cụ thể từ tệp Excel bằng kết nối OLEDB với VB.NET?Làm thế nào để đọc ô Excel từ VB.Net
Bạn có thể hiển thị cho tôi mã mẫu không?
Làm thế nào tôi có thể đọc ô cụ thể từ tệp Excel bằng kết nối OLEDB với VB.NET?Làm thế nào để đọc ô Excel từ VB.Net
Bạn có thể hiển thị cho tôi mã mẫu không?
Hãy thử đoạn code C# sau:
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim MyConnection As System.Data.OleDb.OleDbConnection
MyConnection = New System.Data.OleDb.OleDbConnection(_
"provider=Microsoft.Jet.OLEDB.4.0; " & _
"data source=" & ExcelFilePath & "; " & _
"Extended Properties=Excel 8.0")
' Select the data from Sheet1 ([in-house$]) of the workbook.
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [in-house$]", MyConnection)
DS = New System.Data.DataSet
MyCommand.Fill(DS)
Dt = DS.Tables(0)
DataGrid1.DataSource = Dt
Đối với tế bào đặc biệt thử này (nó sẽ đọc D6 cell). Điểm cần lưu ý là nó không sử dụng kết nối OLEDB thay vì nó đang truy cập trực tiếp.
Không gian tên được yêu cầu bằng Microsoft.Office.Core;
Thêm nó bằng cách thêm tài liệu tham khảo từ COM để Microsoft Office 12.0 Object Library
Dim oApp As New Excel.Application
Dim oWBa As Excel.Workbook = oApp.Workbooks.Open("c:\Test.XLS")
Dim oWS As Excel.Worksheet = DirectCast(oWBa.Worksheets(1),
Excel.Worksheet)
oApp.Visible = False
Dim oRng As Excel.Range
oRng = oWS.Range("D6")
MsgBox(oRng.Value)
là một Excel tương thích phần bảng tính cho .NET mà bạn có thể sử dụng để có được những công thức, giá trị, văn bản được định dạng, v.v ... của bất kỳ ô nào. Dưới đây là một ví dụ đơn giản:
using System;
using SpreadsheetGear;
namespace Program
{
class Program
{
static void Main(string[] args)
{
// Load a workbook from disk and get the first worksheet.
IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(@"C:\tmp\HelloWorld.xlsx");
IWorksheet worksheet = workbook.Worksheets[0];
// Get a reference to cell A1 and write the formatted value to the console.
IRange a1 = worksheet.Cells["A1"];
Console.WriteLine("A1={0}", a1.Text);
// Get a reference to B2 and write the formula/value/text to the console.
IRange b2 = worksheet.Cells[1, 1];
Console.WriteLine("B2 Formula={0}, Value={1}, Text={2}", b2.Formula, b2.Value, b2.Text);
}
}
}
Bạn có thể xem mẫu sống here hoặc tải về dùng thử miễn phí here nếu bạn muốn thử nó cho mình.
Disclaimer: Tôi sở hữu SpreadsheetGear LLC
thử C# mã này,
DimobjEXCELCon As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=EXCLE_FILE_PATH;Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
ExcelConnection.Open()
Dim objQuery As String = "SELECT * FROM [Sheet1$]" 'get values from sheet1, here you can change your sheet name
Dim objCMD As OleDbCommand = New OleDbCommand(objQuery,objEXCELCon)
Dim objDR As OleDbDataReader
Dim SQLconn As New SqlConnection()
Dim szCON As String = "Connection string for database"
SQLconn.ConnectionString = szCON
SQLconn.Open()
Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLConn)
bulkCopy.DestinationTableName = "TableToWriteToInSQLSERVER"
Try
objDR = objCMD.ExecuteReader
bulCopy.WriteToServer(objDR)
objDR.Close()
SQLConn.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Có nó đọc tất cả các tập tin vượt trội. Làm thế nào tôi có thể đọc các tế bào cụ thể (nghĩa là: Tôi có nghĩa là làm thế nào tôi có thể đọc A11 trong bảng excel?)? Bộ mã của bạn là làm việc để đọc toàn bộ tập tin. Cảm ơn bạn. – RedsDevils
Tôi cần nhập gì để sử dụng như Excel.Application? – RedsDevils
Ok tôi đã nhận nó để tham khảo COM. Cảm ơn tôi sẽ thử mã của bạn. – RedsDevils