[英]How to run over cells on Excel in C#?
我如何在Excel(不是.csv)中的单元格上运行并读取单元格值? 我需要运行所有单元。 提前致谢。
这是使用ADO.NET的一种方法:
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myfile.xls;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
string provider = "System.Data.OleDb";
DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
connection.Open();
DbCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM [Sheet1$]"
DbDataReader reader = command.ExecuteReader();
while(reader.read()) {
// process row
}
请查看ConnectionString.com,以获取有关连接字符串设置的详细信息(例如,Excel 2007 稍有不同 )。 在command
上设置commandText
属性时,可以设置更复杂的查询( SELECT * from [Sheet1$] where someColumn <> someValue and someOtherColumn > someOtherValue
)。
该方法的一个优点是,如果您已经熟悉ADO.NET,则可以使用在那里获得的知识。 此外,不需要在计算机上安装Excel。
这是一个示例 :
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
//Start Excel and get Application object.
oXL = new Excel.Application();
oXL.Visible = true;
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
//Add table headers going cell by cell.
oSheet.Cells[1, 1] = "First Name";
我认为最好的方法是将excel视为ADO.NET数据源。 这是一个示例: http : //www.knowdotnet.com/articles/exceldatasource.html 。
这种方法使您可以轻松地查询excel工作表中的数据,甚至无需安装Microsoft Excel。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.