繁体   English   中英

如何在C#中的Excel上运行单元格?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM