使用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中的行)将所有行添加到新表。
如果有人想要更多的澄清,请继续问。
- 如何使用VSTO在Excel中检查名称是否正在使用?
- Excel如何识别date单元格,以及如何使用OpenXml和C#
- C#excelclosures过程还剩下
- 在Visual Studio中closuresMicrosoft Excel工作表c#
- C# – Excel / InteropServicesreplace方法遇到问题
- 在Excel VSTO文档级自定义中,如何将“Globals.Sheetn”传递给参数以指定Excel.Worksheet接口?
- Kendo网格打印所有的数据,而不仅仅是可见的数据
- 如何在sql中隐藏行中的重复值
- 使用Open XML Format SDK 2.0 CTP创build时不保存文档