如何命名我制作的新Excel表格并将其放在所有表格的末尾?

我想出了如何在C#中创build一个新的Excel工作表。 我这样做:

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel; appExcel.Worksheets.Add(); 

但我不知道如何给我制作的Excel表格命名,也不知道如何把它放在最后而不是开头。

我试过这个:

 sheet1 = appExcel.Worksheets.Add(); sheet1.name = "test"; 

但是这不起作用。 我也看了添加function,但我不能用这种方式填写名称: appExcel.Worksheets.Add("test");

我的代码:

 excel_init("C:\\Users\\me\\Desktop\\excel2.xlsx"); private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel; private static Workbook newWorkbook_First = null; private static _Worksheet objsheet = null; static void excel_init(String path) { appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass(); if (System.IO.File.Exists(path)) { // then go and load this into excel newWorkbook_First = appExcel.Workbooks.Open(path, true, true,5); // does NOT make 5 excel sheet??? objsheet = (_Worksheet)appExcel.ActiveWorkbook.ActiveSheet; } else { try { appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass(); appExcel.Visible = true; newWorkbook_First = appExcel.Workbooks.Add(1); objsheet = (Microsoft.Office.Interop.Excel.Worksheet)newWorkbook_First.Sheets[1]; } catch (Exception e) { Console.Write("Error"); } finally { } } } 

如果你看看Worksheets.Add的文档,你会得到:

 Object Add( Object Before, Object After, Object Count, Object Type ) 

所以Add方法都会创build新的工作表并指定关于如何将其放置在Worksheets集合中的各种参数。

  • types之前:System.Object可选对象。 一个对象,指定添加新工作表之前的工作表。
  • types:System.Object可选对象之后。 指定添加新工作表之后的工作表的对象。
  • 计数types:System.Object可选对象。 要添加的页数。 默认值是1。
  • typestypes:System.Object可选对象。 指定表单types。 可以是以下XlSheetType常量之一:xlWorksheet,xlChart,xlExcel4MacroSheet或xlExcel4IntlMacroSheet。

所以你所要做的就是:

 var newSheet = appExcel.Worksheets.Add(null, appExcel.Worksheets(appExcel.Worksheets.Count), 1, XlSheetType.xlWorksheet); newSheet.Name = "myWorkSheet"; 

这将在最后一个工作表之后创build并返回一个工作表,然后设置名称。

注意:工作表不是基于0的。

更新:

所以根据我在评论中的嘲笑,这应该是:

  var newSheet = (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet); newSheet.Name = "myWorkSheet"; 

要不就

 var newSheet = appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet) as Worksheet; newSheet.Name = "myWorkSheet";