无任何工作表创建Excel工作簿

时间:2018-03-28 14:03:52

标签: c# excel

有没有办法在没有任何工作表的情况下创建Excel工作簿?

这是我用来创建工作簿的代码:

excelApp = new Microsoft.Office.Interop.Excel.Application();
excelBook = excelApp.Workbooks.Add();

我还尝试添加

excelApp.SheetsInNewWorkbook = 0;

在创建excelBook之前,但最小值为1,因此程序崩溃。

编辑:

还试图在创建第一张纸后立即将其删除,但仍然无效

Sheets excelSheetsToDelete = excelBook.Sheets[1];
excelSheetsToDelete.Delete();

我希望以后可以添加我的名字,而不必重命名第一张。

2 个答案:

答案 0 :(得分:1)

您无法在没有任何工作表的情况下创建Excel,Excel必须至少包含一个工作表。尝试删除Excel应用程序(桌面)中的单个工作表。你不会那样做。

答案 1 :(得分:0)

就像人们已经说过的那样,Excel必须始终包含至少一个可见的工作表。由于您似乎只想创建工作簿,并手动指定工作表名称而不必重命名自动创建的工作表,因此我编写了可能适合您的快速VB脚本。

Dim objShell, objExcel, objWorksheet, strSheetName
strSheetName = InputBox("Enter a name for your new Worksheet:")
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("EXCEL.EXE")
WScript.Sleep 3000 'Wait for new excel file to open
Set objExcel = GetObject(, "Excel.Application")
Set objWorksheet = objExcel.ActiveWorkbook.Worksheets(1)
objWorksheet.Name = strSheetName

这样做会提示您输入新工作表的名称。然后它运行一个新的Excel实例,并将新创建的文件的第一个工作表设置为您指定的名称。

如果Excel在创建新工作簿时包含3张,您可以通过进入任何Excel工具簿并单击 - 文件>将其更改为1。选项>一般 - 并寻找“当创建新工作簿”分隔符。将有一个选项“包含这么多张”,您可以将其更改为1。

另外,要确认人们已经说过什么,如果您尝试将此值更改为0,它将告诉您“条目必须大于或等于1”,这意味着所有工作簿必须包含至少1个可见工作表。希望这有帮助。