[英]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.