Как я могу прочитать определенную ячейку из файла Excel с помощью соединения OLEDB с VB.NET?Как читать ячейку Excel из VB.Net
Можете ли вы показать мне пример кода?
Как я могу прочитать определенную ячейку из файла Excel с помощью соединения OLEDB с VB.NET?Как читать ячейку Excel из VB.Net
Можете ли вы показать мне пример кода?
Попробуйте следующие C# код:
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
Для конкретной ячейки попробовать это (он будет читать D6 клетки). Следует отметить, что он не использует соединение OLEDB, а имеет прямой доступ.
пространство имен требуется using Microsoft.Office.Core;
Добавить это путем добавления ссылки из COM в Microsoft Office Library 12.0 Object
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)
является совместимый компонент электронной таблицы Excel для .NET, который вы можете использовать, чтобы получить формулу, значение, форматированный текст и т. д. любой ячейки. Вот простой пример:
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);
}
}
}
Вы можете увидеть живые образцы here или скачать бесплатную пробную версию here если вы хотите попробовать это самостоятельно.
Отказ от ответственности: У меня есть SpreadsheetGear ООО
попробовать это в C# код,
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
Да это прочитать все первенствовать файл. Как я могу прочитать определенную ячейку (т. Е. Я имею в виду, как я могу прочитать A11 в листе Excel)? Ваш набор кода работает для чтения всего файла. Спасибо вам. – RedsDevils
Что мне нужно для импорта, например Excel.Application? – RedsDevils
Хорошо, я получил ссылку на COM. Спасибо, я попробую ваш код. – RedsDevils