2010-03-09 94 views

Trả lời

7

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) 
+0

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

+0

Tôi cần nhập gì để sử dụng như Excel.Application? – RedsDevils

+0

Ok tôi đã nhận nó để tham khảo COM. Cảm ơn tôi sẽ thử mã của bạn. – RedsDevils

0

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

0

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ác vấn đề liên quan