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来过滤,迭代等......
如果您不知道文件中有多少行来定义范围,您可以执行以下操作:
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;
3 回答
看看How to open an Excel file in C#?
要在特定方案上添加一些输入:有一个具有Rows属性的Worksheet对象 .
如果您对其他方法持开放态度我建议您使用LinqToExcel,您可以在NuGet找到它,这样您最终会得到一个IQueryable对象而不是一些凌乱的数据集,例如:
定义您的实体:
如果您知道要阅读的范围,可以执行以下操作:
然后你可以用q来过滤,迭代等......
如果您不知道文件中有多少行来定义范围,您可以执行以下操作:
没有人回答我的问题好..但我在我的寂寞中想出来了 .
我通过将Excel工作表读入dataTable解决了这个问题 . 然后从dataTable中删除前8行 . 然后我创建了第二个数据表,手动添加了列(使用Columns.Add命令)并使用foreach(OGdataTable中的行)将所有行添加到新表中 .
如果有人想要对此进行更多说明,请继续询问 .