2014-01-09 66 views
0

您好我正在使用Visual Studio 2005中的OpenFileDialog導入excel或.csv文件。 我需要顯示列表中的所有標題,該列表應該列出在組合框上。在下拉列表中導入excel標題數據.net

例如,如果我輸入其中有10列的文件,我的下拉應該給我10個值 1,2,3 .......... 10

請讓我知道如何去做。

回答

1

CSV與Excel完全不同。

我會使用OpenXml庫或使用OleDb驅動程序從Excel文件讀取。

看吧:Reading excel file using OLEDB Data Provider

您需要先安裝驅動程序ACE,你可能已經擁有了它,雖然。

0
// first read *.xls file into a DataTable; don't wory it is very quick. 
public DataTable ReadExcelFile(string strFilePath) 
{ 
    string sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + strFilePath + "; Extended Properties=\"Excel 8.0; HDR=No; IMEX=1;\""; 
    OleDbConnection objConn = new OleDbConnection(sConnectionString); 
    objConn.Open(); 
    DataTable sdt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
    // Change this part to read 1 row  
    String str = "SELECT TOP(2) * FROM [" + sdt.Rows[0]["TABLE_NAME"].ToString() + "]"; 
    //String str = "SELECT * FROM [" + sdt.Rows[0]["TABLE_NAME"].ToString() + "]"; 
    OleDbCommand objCmdSelect = new OleDbCommand(str, objConn); 
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); 
    objAdapter1.SelectCommand = objCmdSelect; 
    DataTable dt = new DataTable(); 

    objAdapter1.Fill(dt); 

    objConn.Close(); 
    dt.AcceptChanges(); 

    return dt; 
} 

現在用的DataTable

DataTable dt = ReadExcelFile(@"c:\\x.xlsx"); 
if (dt != null) 
{ 
    System.Windows.Forms.ComboBox cmb = new System.Windows.Forms.ComboBox(); 
    for (int i = 0; i < dt.Columns.Count; i++) 
     cmb.Items.Insert(i, dt.Columns[i].ColumnName); 
} 
工作