C# 读取xslx文件并转换为列表

C# 读取xslx文件并转换为列表,c#,asp.net,.net,xlsx,C#,Asp.net,.net,Xlsx,我有一个包含以下数据的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 ... 就像你可以看到的,我只使用了一列和很多行。 我需要以某种方式从xslx文件中读取该列,并将其转换为列表 有什么帮助吗 谢谢 您可以使用OOXML读取文件,此库简化了您的工作。您可以使用,它很

我有一个包含以下数据的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
    ...
就像你可以看到的,我只使用了一列和很多行。 我需要以某种方式从xslx文件中读取该列,并将其转换为列表

有什么帮助吗


谢谢

您可以使用OOXML读取文件,此库简化了您的工作。

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

  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());
  }

最简单的方法是使用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);

好吧,为了理清显而易见的问题,您的excel中是否有Sheet1?如果你有一个,它是不是碰巧是空的?我已经遵循了这一点,但它给出了,不能覆盖从“方法组”到“字符串”在哪一行?最后一个是ToString上缺少括号,修复了该问题