2012-05-22 40 views
0

我有一個XSLX文件,以下數據讀取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>

任何幫助?

謝謝!

回答

7

您可以使用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()); 
    } 
+0

如果我用你的代碼我得到一個空的'ws' – Ozkan

+0

以清楚明白,你有excel中的Sheet1嗎?如果你有一個是有空的話? –

+0

是的,謝謝,這解決了我的問題 – Ozkan

3

最簡單的方法是使用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); 
相關問題