是否有免费或开源库可以直接从 C# 程序读取 Excel 文件 (.xls)?
不需要太花哨,只需选择一个工作表并将数据读取为字符串即可。到目前为止,我一直在使用 Excel 的导出到 Unicode 文本功能,并解析生成的(制表符分隔的)文件,但我想消除手动步骤。
var fileName = string.Format(“{0}\fileNameHere”, Directory.GetCurrentDirectory()); var connectionString = string.Format(“Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;”, fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "anyNameHere"); DataTable data = ds.Tables["anyNameHere"];
这是我通常使用的。这有点不同,因为我通常在编辑表格时粘贴 AsEnumerable() :
var data = ds.Tables["anyNameHere"].AsEnumerable();
因为这让我可以使用 LINQ 从字段中搜索和构建结构。
var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x => new MyContact { firstName= x.Field<string>("First Name"), lastName = x.Field<string>("Last Name"), phoneNumber =x.Field<string>("Phone Number"), });