替代OleDB,将excel文件导入datatable中
问题描述:由于版权问题,要求不能安装微软的东西,或者使用office,
故需要将以前支持微软OleDB(Access数据库提供的工具)导入datatable的方法改为wps的办法
WPS目录下 Program Files(x86)\Kingsoft\WPS Office\10.8.0.6058\Office6 下的etapi.dll文件可以用作.net读取excel表格的库
其中:Excel是主类
Excel-->Workbook-->Item
Range是一个表格里范围的主类, Columns Rows Cells 的类型都是Range
具体api参考文档可以查看:
https://docs.microsoft.com/zh-cn/office/vba/api/excel.range.count
以下代码作参考:
try { Excel.Application appli = new Excel.Application(); Excel._Workbook wk = appli.Workbooks.Open(excelPath); System.Data.DataTable mydt = new System.Data.DataTable(); if (wk != null) { Excel.Worksheet sheet = wk.Worksheets.Item[1]; /** * added by jiangchaoqun, 如果没办法直接读取,那么就 */ mydt.Columns.Add("店铺编号"); mydt.Columns.Add("URL"); if (sheet != null) { int index = 0; foreach(Excel.Range rw in sheet.Rows) { //pay attention: we donnot need the first line!!! if (index == 0) { index++; continue; } if (null == rw.Cells[1,2].Value2 ) { break; } String value1 = rw.Cells[1, 2].Value2.ToString(); String value2 = rw.Cells[1, 3].Value2.ToString(); ; //创建行 DataRow row = mydt.NewRow(); //获取每一行的值,保存在datatable中 row["店铺编号"] = value1; row["URL"] = value2; mydt.Rows.Add(row); } } }