0

我有一个包含以下数据的 xslx 文件

    www.url.com
    www.url.com
    www.url.com
    www.url.com
    www.url.com
    www.url.com
    www.url.com
    www.url.com
    ...

如您所见,我只使用了 1 列和很多行。我需要以某种方式从 xslx 文件中读取该列并将其转换为List<string>.

有什么帮助吗?

谢谢!

4

4 回答 4

9

您可以使用EPPlus,很简单,如下所示:

  var ep = new ExcelPackage(new FileInfo(excelFile));
  var ws = ep.Workbook.Worksheets["Sheet1"];

  var domains = new List<string>();
  for (int rw = 1; rw <= ws.Dimension.End.Row; rw++)
  {
    if (ws.Cells[rw, 1].Value != null)
     domains.Add(ws.Cells[rw, 1].Value.ToString());
  }
于 2012-05-22T15:01:57.800 回答
4

最简单的方法是使用 OleDb,你可以这样做:

List<string> values = new List<string>();

string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\your\\path\\file.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=NO;\"";
using (OleDbConnection conn = new OleDbConnection(constr))
{
    conn.Open();
    OleDbCommand command = new OleDbCommand("Select * from [SheetName$]", conn);
    OleDbDataReader reader = command.ExecuteReader();
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            // this assumes just one column, and the value is text
            string value = reader[0].ToString();
            values.Add(value);
        }
    }
}

foreach (string value in values)
    Console.WriteLine(value);
于 2012-05-22T15:18:03.957 回答
2

您可以使用 OOXML 来读取文件,这个库可以简化您的工作http://simpleooxml.codeplex.com

于 2012-05-22T14:58:17.893 回答
2

您是否尝试过使用ClosedXML?做起来超级简单。

        var wb = new XLWorkbook(FileName);

        var ws2 = wb.Worksheet(1);

        List<string> myData = new List<string>();

        foreach (var r in ws2.RangeUsed().RowsUsed())
        {
            myData.Add(r.Cell(1).GetString());
        }
于 2021-06-17T19:58:24.477 回答