一尘不染

从C#读取Excel文件

c#

已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。

是否有免费或开放源代码库可直接从C#程序读取Excel文件(.xls)?

不必太花哨,只需选择一个工作表并以字符串形式读取数据。到目前为止,我一直在使用Excel的“导出到Unicode文本”功能,并分析生成的(制表符分隔)文件,但是我想省去手动步骤。


阅读 232

收藏
2020-05-19

共1个答案

一尘不染

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"),
                    });
2020-05-19