2015-04-07 65 views
-2

我有一個包含數據的excel表,其中第一行是列名,第二行是所有行。我想要將數據插入數據庫中的表中。除了從Excel表格中獲取數據之外,我已經完成了將數據插入數據庫的所有工作。我已經嘗試了下面的代碼,但它以連續的方式給出數據,沒有對行和列之間的歧視。但是,我要像(列名,rowdata)如何從c#中的Excel文件中獲取行列格式的數據.net

這是數據的Excel數據文件

firstname lastname salary age 
sasi kiran 88000 32 
ravi kiran 92000 23 
jafer sharif 34000 45 
kiran bedi  45000 34 

下面的代碼我曾嘗試:

Excel.Application xlApp; 
    Excel.Workbook xlWorkBook; 
    Excel.Worksheet xlWorkSheet; 
    Excel.Range range; 
    string str; 
    int rCnt = 0; 
    int cCnt = 0; 
    xlApp = new Excel.Application(); 
    xlWorkBook = xlApp.Workbooks.Open(@"D:\Copy of Macro with Radio_Test.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
    range = xlWorkSheet.UsedRange; 

    for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++) 
    { 
     for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++) 
     { 
      str = (Convert.ToString((range.Cells[rCnt, cCnt] as Excel.Range).Value2)); 
      Console.WriteLine(str); 
      Console.ReadLine(); 
     } 
    } 

但在這裏,我應該像

console.writeline(firstname, sasi); 
console.writeline(lastname, kiran); 

等等所有值 如何修改代碼以實現結果

+0

我在做和思考一路尋找解決方案,這將是偉大的,如果任何機構可以提供解決方案 – peter

回答

1

如果我理解正確你的問題,此代碼應提供預期輸出:

int rowCount = range.Rows.Count; 
int colCount = range.Columns.Count; 
string[] headers = new string[colCount+1]; 
for (cCnt = 1; cCnt <= colCount; cCnt++) 
    { 
     headers[cCnt] = (Convert.ToString((range.Cells[1, cCnt] as Excel.Range).Value2)); 
    } 

for (rCnt = 2; rCnt <= rowCount; rCnt++) 
{ 
    for (cCnt = 1; cCnt <= colCount; cCnt++) 
    {     
     str = (Convert.ToString((range.Cells[rCnt, cCnt] as Excel.Range).Value2)); 
     Console.Write(heasders[cCnt]); 
     Console.Write(" "); 
     Console.WriteLine(str); 
    } 
    Console.WriteLine("----------------"); 
} 
Console.ReadLine(); 
+0

從異常來自hresult異常0x800a03ec投擲頭[cCnt] =(Convert.ToString( (range.Cells [rCnt,cCnt] as Excel.Range).Value2));行 – peter

+0

@peter,我更新了我的答案(行索引應爲1爲標題,而不是0) – ASh

+0

您是偉大的,它的工作,非常感謝 – peter

1

另一種方式來做到這一點可能是使用Excel互操作,以Excel文件轉換爲.csv文件。在link之後是轉換過程的一個示例,在加載.csv之後,您可以將數據加載到一組映射表格形式的POCO對象。希望它有幫助

相關問題