使用OldeDbConnection读取第9行的Excel表格作为列名称?

我试图读取使用oleDbConnection和OleDbDataAdapter的Excel表,然后用这些信息填充数据集。 我需要弄清楚如何做的是忽略Excel表格中的前8行,并阅读它,就好像第9行是第一行(使列名称在第9行的值)。

谢谢,Alex

检查出如何在C#中打开一个Excel文件?

要在特定场景中添加一些input:有一个Worksheet对象具有一个行属性。

如果你打开其他的方法,我build议使用LinqToExcel,你可以在NuGet上find它,这样你最终将得到一个IQueryable对象,而不是一些凌乱的数据集,例如:

定义您的实体:

 class MyType { public string A { get; set; } public string B { get; set; } public string C { get; set; } } 

如果你知道你想读的范围,你可以做一些事情:

 var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx"); var q = from r in excel.WorksheetRange<MyType>("A9","C12") select r; 

然后你可以使用q来过滤,迭代等…

如果你不知道文件中有多less行来定义范围,你可以这样做:

 var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx"); int rowCount=excel.WorksheetNoHeader().Count(); var q = from r in excel.WorksheetRange<MyType>("A9","C"+rowCount) select r; 

没有人回答我的问题好,但我觉得我寂寞。

我通过将excel表读入dataTable来解决问题。 然后从dataTable中删除前8行。 然后我创build了第二个数据表,手动添加列(使用Columns.Add命令),并使用foreach(OGdataTable中的行)将所有行添加到新表。

如果有人想要更多的澄清,请继续问。