【问题标题】:Rename the Excel Sheet Name in C#在 C# 中重命名 Excel 工作表名称
【发布时间】:2014-01-31 15:02:51
【问题描述】:

VS 2008 / C#。

在传递电子表格的文件路径时,我需要重命名表格。

如何将 Excel 工作表的 Sheet1 重命名为“ABC”。

我们将 Excel 工作表导出到 SQL 数据库。 Excel 工作表中的记录由最终用户手动编辑和更新。列值可以有不同的数据类型。

默认情况下,电子表格将包含三个工作表,分别为 Sheet1、Sheet2、Sheet3。

最终用户,通常在 Sheet1 上工作。我们需要为此 Sheet1 维护一个静态名称,这有助于我们将 Sheet1 导出到 SQL 数据库。

如果我们将 Sheet1 重命名为 ABC,我们将保持相同的名称。我们不能像那样导出默认工作表。因为,最终用户可能会更改他们的名称或坚持使用默认名称。

为了避免混淆,我们决定重命名电子表格的 Sheet1。

【问题讨论】:

  • 有什么理由贬低我的问题??
  • 谷歌搜索“c# rename excel worksheet”这个词得到了几个可能的答案。尽管我本人在这种情况下不愿意投反对票,但可能投反对票的人表达了他的担忧,即您的问题的答案很容易从许多来源获得。
  • 我不是降级的人,但我猜这是因为你没有给我们太多信息。你试过什么?你走了多远?如果您使用 Excel 自动化对象并且可以获得对特定工作表的引用,则可以调用 sheet.SetName("ABC")。但 Excel 自动化可能并不适用于所有场景。如果您提供更多背景知识,我会尽力提供帮助。

标签: c# c#-3.0 office-automation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多