如何命名我制作的新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";