簡體   English   中英

使用C#在新列中獲取Excel單元格的縮進

[英]Get Indent of Excel Cell in new column using C#

我的目標是添加一個新列(B),該列存儲A列的縮進級別值(1,2,3..etc)。在將excel加載到c#excel對象之前,請執行此操作。 因此,我的對象應該具有新列B,列A的縮進值。

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. 該應用程序彈出以保存文件,因為我希望工作簿會自動保存在哪里?

感謝您的幫助。

在這里,您可以找到答案,

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();
            }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM