簡體   English   中英

使用C#在excel中制作多個工作表

[英]Producing multiple worksheets in excel using C#

我需要生成一個C#程序,該程序將創建兩個介紹性工作表,以及一個將為數據庫中的每個條目重復制作的第三個工作表。 我不確定哪種是生成多個工作表的最佳方法。 最后一頁必須能夠保留一些格式和范圍名稱。 是復制最后一張紙更好還是創建新工作表更好?

.NET的SpreadsheetGear可以做到。

請參見此處的Excel Reporting示例頁面上的“ 帶有圖表的工作表到帶有圖表的多個工作表 ”示例(該頁面上還有其他示例可能證明是有用的)。

您可以在此處下載免費試用版。

免責聲明:我擁有SpreadsheetGear LLC

這取決於您的意思是更好。 如果從一張干凈的表開始比較容易,而只是重新復制常見的元素,那么創建新的工作表會更好。

您還可以創建一個臨時的“模板”工作表,上面已經有常見元素,並對其進行復制。

復制功能的文檔在這里:
http://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.worksheet.copy(VS.80).aspx

感謝您的答復,是否可以復制“模板”工作表並保留原始格式和名稱? – Slapdash 58分鍾前

是; 那是可能的。 在這種情況下,您描述我會選擇復制選項。

復制第三張工作表是最好的。 使用Microsoft.Office.Interop.Excel.dll,這是副本的樣子(mExcelWorkbook是您要編輯的模板Workbook):

  /// <summary>
  /// Copy a worksheet to the specified index
  /// </summary>
  /// <param name="worksheetIndex"></param>
  private void CopyWorksheetToIndex(int worksheetIndex, int copyToIndex)
  {
     if (mExcelWorkbook != null)
     {
        // Reference to the worksheet
        Worksheet sheet_to_copy = (Worksheet)mExcelWorkbook.Worksheets[worksheetIndex];
        // Set the Tab Name to something
        sheet_to_copy.Name = "Copied From " + worksheetIndex + " To " + copyToIndex;
        // Copy the worksheet to the end of the worksheets
        sheet_to_copy.Copy(System.Reflection.Missing.Value, mExcelWorkbook.Worksheets[copyToIndex]);
     }
  }

然后,您可以像這樣調用:

  if (mExcelWorkbook != null)
  {
     CopyWorksheetToIndex(3, mExcelWorkbook.Worksheets.Count);
  }

暫無
暫無

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

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