2015-06-17 38 views
0

所以我試圖打開一個Excel文件,並用電子表格中的所有值填充文本框。每當我運行我的代碼時,它將從單元格A1的值,但就是這樣。我不太確定我在做什麼錯我的循環。請提前幫助並感謝您。如何將excel文件中的所有數據加載到C#文本框中?

private void LoadButton_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog loadFile = new OpenFileDialog(); 
      if (loadFile.ShowDialog() == DialogResult.OK) 
      { 
       string rowsAndColumns = ""; 
       fileName = loadFile.FileName; 
       Excel.Application myApp = new Excel.Application(); 
       myApp.Visible = false; 
       Excel.Workbook myBook = myApp.Workbooks.Open(fileName); 
       Excel.Worksheet mySheet = myBook.Sheets[1]; 

       object[,] words = (object[,])mySheet.UsedRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault); 


       for (int row = 1; row <= mySheet.UsedRange.Row; row++) 
       { 
        for (int column = 1; column <= mySheet.UsedRange.Column; column++) 
        { 
         rowsAndColumns += words[row, column]; 
        } 
        rowsAndColumns += Environment.NewLine; 
       } 
       BasicTextBox.Text = rowsAndColumns; 
      } 
     } 
+0

只是兩個小建議: (1)使用'StringBuilder'類來建立你的字符串而不是連接機智h'+'。 (2)確保當只有一個單元格在範圍內時可以避免錯誤(此處描述的問題http://stackoverflow.com/questions/7383304/object-range-get-valuexl-xlrangevaluedatatype-xlrangevaluedefault-causes-a) 。 我知道這不是你的問題的答案,但它仍然可能是有幫助的;)。 –

回答

0

嘗試這些變化:

for (int row = 1; row <= mySheet.UsedRange.Row.Count; row++) 

for (int column = 1; column <= mySheet.UsedRange.Column.Count; column++) 

rowsAndColumns += words[row, column].ToString(); 
+0

由於某些原因,計數給了我一個錯誤,所以我用mySheet.UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Column,似乎工作。不過謝謝你的提示 – Desquid

相關問題