簡體   English   中英

在 C# 中重命名 Excel 表名稱

[英]Rename the Excel Sheet Name in C#

對比 2008 / C#。

在傳遞電子表格的文件路徑時,我需要重命名工作表。

如何將 Excel Sheet 的 Sheet1 重命名為“ABC”。

我們將 Excel 表導出到 SQL 數據庫。 Excel 表中的記錄由最終用戶手動編輯和更新。 列值可以有不同的數據類型。

默認情況下,電子表格將具有三個工作表,分別為 Sheet1、Sheet2、Sheet3。

最終用戶,通常在 Sheet1 上工作。 我們需要為此 Sheet1 維護一個 static 名稱,這有助於我們將 Sheet1 導出到 SQL 數據庫。

如果我們將 Sheet1 重命名為 ABC,我們將保持相同的名稱。 我們不能像那樣導出默認工作表。 因為,最終用戶可能會更改他們的名稱或堅持使用默認名稱。

為了避免混淆,我們決定重命名電子表格的 Sheet1。

C# 3.0

using Microsoft.Office.Interop.Excel;

然后

object oMissing = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.ApplicationClass xl = new Microsoft.Office.Interop.Excel.ApplicationClass();

Microsoft.Office.Interop.Excel.Workbook xlBook;
Microsoft.Office.Interop.Excel.Worksheet xlSheet;

string laPath = System.IO.Path.GetFullPath("C:\\ExcelSheet.xls");
xlBook = (Workbook)xl.Workbooks.Open(laPath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
xlSheet.Name = "CIAO";
xlBook.Save();
xl.Application.Workbooks.Close();

C# 4.0+

不同之處在於:不再使用System.Reflection.Missing.Value並使用 DLR(動態語言運行時)

using System.IO;

using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;

然后

var excelFile = Path.GetFullPath("C:\\ExcelSheet.xls");
var excel = new Excel.Application();
var workbook = excel.Workbooks.Open(excelFile);
var sheet = (Excel.Worksheet)workbook.Worksheets.Item[1]; // 1 is the first item, this is NOT a zero-based collection
sheet.Name = DateTime.Now.ToString("yyyyMMddHHmmss");
workbook.Save();
excel.Application.Workbooks.Close();

暫無
暫無

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

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