[英]Data missing while Reading Excel sheet using OleDbConnection in C#
[英]reading data from excel sheet using C#
如何使用C#代码读取Excel工作表内的信息......
你可以使用Oledb
using System.Data;
using System.Data.OleDb;
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=Excel 8.0");
OleDbDataAdapter da = new OleDbDataAdapter("select * from MyObject", con);
DataTable dt = new DataTable();
da.Fill(dt);
或者您使用Office Interop
this.openFileDialog1.FileName = "*.xls";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(
openFileDialog1.FileName, 0, true, 5,
"", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,
0, true);
Excel.Sheets sheets = theWorkbook.Worksheets;
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
for (int i = 1; i <= 10; i++)
{
Excel.Range range = worksheet.get_Range("A"+i.ToString(), "J" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value;
string[] strArray = ConvertToStringArray(myvalues);
}
}
如果数据是表格式的,请使用OleDB,否则您可以使用自动化自动化Excel并将值复制到您的应用程序。
或者如果它是新的XML格式excel表单,您可以通过框架类来完成它。
有关Excel自动化的信息: 如何:使用COM Interop创建Excel电子表格
有关Excel通过OleDB的信息: 如何使用ADO.NET使用Visual Basic .NET在Excel工作簿中检索和修改记录
Excel有一个用于编程的API。 您可以使用它来使用c#获取数据范围。 您可以使用以下内容:
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
oSheet.get_Range(RangeStart,RangeEnd)
NPOI是要走的路。
使用office interop要求在您的应用程序运行的计算机上安装Office(和正确的版本)。 如果一个web abb,这可能意味着没有,并且它对于生产环境来说还不够健壮。 OLEDB有严重的局限性,除非它是一次性的,数据非常简单,我不会使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.