2017-01-10 13 views
0

私の目的は、列Aのインデントレベル値(1,2,3 ...など)を格納する新しい列(B)を追加することです。 C#のExcelオブジェクトに秀でています。だから私のオブジェクトは列Aのインデントの値を持つ新しい列Bを持っている必要がありC#を使用して新しい列にExcelセルのインデントを取得する

if (xlWorkbook != null && xlWorkbook.Sheets.Count > 0) 
{ 
    Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1]; 
    Excel.Range oRng = xlWorksheet.Range["B1"]; 

    oRng.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, 
    Excel.XlInsertFormatOrigin.xlFormatFromRightOrBelow); 
    oRng = xlWorksheet.Range["B1"]; 
    oRng.Value2 = "IndentValue"; 

    Excel.Range xlHeaderRange = xlWorksheet.UsedRange; 

    object[,] excelObj = (object[,])xlHeaderRange.Value2; 

    string filename = Path.GetFileNameWithoutExtension(sFile); 

    if (effectiveDate == DateTime.MinValue) 
    { 
     DateTime.TryParse(Convert.ToString((xlWorksheet.Cells[Definition.DATE_ROW_ID, Definition.DATE_COLUMN_ID] as Excel.Range).Value), out effectiveDate); 
    } 

    xlWorkbook.Close(); 
} 

私の問題:

  1. どの列Bのインデントの値を取得するには?

  2. ブックは、ブックが自動的に保存されることを期待している場所でポップアップします。 は自動的に保存されますか?

あなたのお手伝いをお待ちしております。ここで

答えて

0

あなたが答えを行く、

if (xlWorkbook != null && xlWorkbook.Sheets.Count > 0) 
{ 
     Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1]; 

     //B8 position an column "IndentValue" in inserted 
     Excel.Range oRng = xlWorksheet.Range["B8"]; 
     oRng.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, 
     Excel.XlInsertFormatOrigin.xlFormatFromRightOrBelow); 
     oRng = xlWorksheet.Range["B8"]; 
     oRng.Value2 = "IndentValue"; 

     //collect indent value of Col A in Col B 
     for (i = 9; i <= xlWorksheet.UsedRange.Rows.Count; i++) 
     { 
      Excel.Range aRng = xlWorksheet.Range["A" + i]; 
      var Indentvalue = aRng.IndentLevel; 
      xlWorksheet.Cells[i, 2].value = Indentvalue; 
      } 

     Excel.Range xlHeaderRange = xlWorksheet.UsedRange; 

     object[,] excelObj = (object[,])xlHeaderRange.Value2; 

     string filename = Path.GetFileNameWithoutExtension(sFile); 

     if (staticconstList.Contains(filename)) 
      { 
       if (effectiveDate == DateTime.MinValue) 
       { 
        DateTime.TryParse(Convert.ToString((xlWorksheet.Cells[Definition.DATE_ROW_ID, Definition.DATE_COLUMN_ID] as Excel.Range).Value), out effectiveDate); 
       } 

       xlWorkbook.Saved = true; 
       xlWorkbook.Close(); 
      } 
} 
関連する問題