2

Excelシートの特定のセルの値を読み取るためにc#を使用しています。しかし、私のコードによると、私は何の価値も得ていません..

セル値を取得するための私のコードは次のとおりです。

foreach (DataRow dr in sourceds.Tables[0].Rows) {
    while (clmn < dr.ItemArray.Count()) {
        value = ((Microsoft.Office.Interop.Excel.Range)ws.Cells[row,clmn]).Text.ToString();
        ws.Cells[row, clmn] = value;
        ws.Cells[row, clmn] = value;
        clmn++;
    }
    row++;
}
wb.Save();

ここで、他のシートからセルを読み取っていて、その値を他のシートに挿入したいと考えています。
しかし、私は「値」の値を取得していません..

4

3 に答える 3

1

コンテンツがテキストの.Text場合、パラメーターは値のみを持ちます。通常、.Value.ToString()代わりに使用します。

別のシートから値を取得することに言及しました。シートはどこにセットしますか?次のようなことができるはずですwb.Sheets[0].Cells[row,clmn].Value.ToString()(最初のシートからのデータが必要であると仮定します)。

このコードを見ると、項目をセルごとにコピーしています。代わりに、選択/コピー/貼り付け機能を使用する方がはるかに簡単です。

Range r1 = wb.Sheets[0].Cells["C1", "E5" ]; // define corners of selection square
Range r2 = wb.Sheets[1].Cells["A1"];        // destination
r1.Select();
r1.Copy(r2);
于 2011-10-10T11:39:35.033 に答える
1

あなたはこれを試すことができます...

MyCellValue = (((Microsoft.Office.Interop.Excel.Range)oWorkSheet.Cells[myRow, myCol]).Value2 != null ? ((Microsoft.Office.Interop.Excel.Range)oWorkSheet.Cells[myRow, myCol]).Value2.ToString().Trim() : "");

例外が発生しないように、値が null でないかどうかを確認します。myCel 変数は、数値 (列の番号を示す) または文字列 (列の名前、つまり「A」を示す) のいずれかです。myRow 変数は行の番号です。

于 2014-02-06T17:20:42.283 に答える
0
  1. アプリケーションに追加Microsoft.Office.Interop.Excel.dllします。
  2. メソッドに次のコード行を記述するか、このメソッドを使用します。

         private void readExcel() 
         {
          object _row = 1;  
          object _column = 1;   
          Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();  
          excelApp.Visible = false;  
          excelApp.ScreenUpdating = false;  
          excelApp.DisplayAlerts = false;  
          Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(@"D:\\Book1.xlsx", 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);  
          Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets;
          string currentSheet = "Sheet1";  
          Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(currentSheet);  
          Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)excelWorksheet.UsedRange;  
          string sValue = (range.Cells[_row, _column] as Microsoft.Office.Interop.Excel.Range).Value2.ToString();  
          //sValue has your value  
         }
    
于 2013-07-07T14:45:41.363 に答える