2

VS 2008 / C#。

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

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

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

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

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

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

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

4

1 回答 1

7

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();
于 2011-07-18T15:14:53.050 回答