我的应用程序需要从excel文件中读取数据.我正在使用.Net和c#for development.
在未安装ms office的系统中,如何访问应用程序中的excel文件?
我的应用程序需要从excel文件中读取数据.我正在使用.Net和c#for development.
在未安装ms office的系统中,如何访问应用程序中的excel文件?
可以 Select 使用OleDB
和Excel表格,比如数据库中的数据表...
举个例子.....
string con =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;" +
@"Extended Properties='Excel 8.0;HDR=Yes;'";
using(OleDbConnection connection = new OleDbConnection(con))
{
connection.Open();
OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
using(OleDbDataReader dr = command.ExecuteReader())
{
while(dr.Read())
{
var row1Col0 = dr[0];
Console.WriteLine(row1Col0);
}
}
}
本例使用Microsoft.Jet.OleDb.4.0
提供程序打开并读取Excel文件.但是,如果文件类型为xlsx(来自Excel 2007和更高版本),则需要下载Microsoft Access Database Engine个组件并将其安装到目标机器上.
提供程序名为Microsoft.ACE.OLEDB.12.0;
.请注意,该组件有两个版本,一个用于32位,另一个用于64位.根据应用程序的大小和安装的Office版本(如果有) Select 合适的版本.要让该驱动程序正确地为您的应用程序工作,有很多怪癖.See this question for example
当然,您不需要在目标计算机上安装Office.
虽然这种方法有一些优点,但我认为你应该特别注意你在问题Reading excel files from C#中的 comments 所显示的链接.在正确解释数据类型以及单个excel单元格中的数据长度超过255个字符时,会出现一些问题