C# 在C中从Excel文件中获取行
我正在阅读C语言的Excel文件。文件中有3张表格: 总结 使用者 其他 我在下面的Summary sheet.code列中循环 每个工作表中都有一列:SummaryIDC# 在C中从Excel文件中获取行,c#,excel,C#,Excel,我正在阅读C语言的Excel文件。文件中有3张表格: 总结 使用者 其他 我在下面的Summary sheet.code列中循环 每个工作表中都有一列:SummaryID foreach (DataColumn dc in Summary.Columns) { foreach (DataRow dr in Summary.AsEnumerable()) { //get column SummaryID for everyrow //And then get al
foreach (DataColumn dc in Summary.Columns)
{
foreach (DataRow dr in Summary.AsEnumerable())
{
//get column SummaryID for everyrow
//And then get all rows in Users sheet that match SummaryID
//And then get all rows in Others sheet that match SummaryID
}
}
我的问题是:对于摘要工作表SummaryID中的everyrow,我希望获得与“用户”和“其他人”工作表中的摘要ID匹配的所有匹配行
注意:列SummaryID存在于所有3张工作表中,并且是所有工作表中的第一列。您是否考虑过将Excel工作表视为数据库,并使用OLEDB或类似技术查询出所需的数据
此时这将是一个简单的连接查询-可能更快…我喜欢使用它们有一个LinqToExcel.Row类,这可能会对您有所帮助,您将使用linq over foreach语句 您可以使用OleDB来执行此操作。代码是相似的
// create a connection to your excel file
// the 8.0 denotes excel 2003
// you will need to use the right number for your version of excel
OleDbConnection con = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=InsertYourFile.xls"; Extended Properties=Excel 8.0" );
// create a new blank datatableDataTable
dtSheets = new DataTable();
// create a data adapter to select everything from the worksheet you want
OleDbDataAdapter da = new OleDbDataAdapter( "select * from [YourWorksheetName$] WHERE BLAH, etc", con );
// use the data adapter to fill the datatable
da.Fill( dtSheets );
我确信应该有一种方法可以简单地得到整行。我的问题是:对于摘要工作表SummaryID中的everyrow,我希望获得与“用户”和“其他人”工作表中的摘要ID匹配的所有匹配行。注意:列SummaryID存在于所有3张工作表中,并且是所有工作表中的第一列。。。。我不确定你的意思是什么,但我仍然相信最快的方法是将Excel文件视为一个数据库-如果你希望每个工作表中的数据分开,你只需从汇总表中选择不同的SummaryID,然后从该列表中SummaryID所在的其他两个工作表中选择*即可。你完了!你的问题是什么。。你发表了一个声明,而不是一个问题。。您应该询问如何基于SummaryID获取匹配行这是一个正确的假设吗。。?你能展示一下你是如何连接到Excel电子表格的吗。。?您是否有声明Excel应用程序实例的现有代码?Justin能否为我的问题提供一个示例。您应该能够使用正确的内部联接创建SQL,并获得相同的结果。请参阅