我想出了如何在C#中制作新的Excel表格。 我这样做:
private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
appExcel.Worksheets.Add();
但我不知道如何为我制作的Excel表格命名,也不知道如何将其放在最后而不是开头。
我试过了:
sheet1 = appExcel.Worksheets.Add();
sheet1.name = "test";
但是这没用。
我也查看了Add函数,但我不能用这种方式填充名称: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
{
}
}
}
答案 0 :(得分:1)
如果你查看Worksheets.Add的文档,你会得到:
Object Add(
Object Before,
Object After,
Object Count,
Object Type
)
因此,Add方法既会创建新工作表,又会指定有关如何将其放在Worksheets集合中的各种参数。
所以你需要做的就是:
var newSheet = appExcel.Worksheets.Add(null, appExcel.Worksheets(appExcel.Worksheets.Count), 1, XlSheetType.xlWorksheet);
newSheet.Name = "myWorkSheet";
这将在最后一个工作表之后创建并返回一个工作表,然后设置名称。
注意:工作表不是基于0的。
<强>更新强>
因此,根据我在评论中的hackery,这应该是:
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";