gpt4 book ai didi

c# - 为什么即使我明确将工作表计数设置为 1,我也会得到一张多余的工作表?

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:28 25 4
gpt4 key购买 nike

我想避免生成的电子表格包含名为“Sheet1”等的空白/多余工作表。我想我可以通过指定一个工作簿应该有多少张纸来做到这一点:

_xlApp = new Excel.Application { SheetsInNewWorkbook = 1 };

...但除了我创建的工作表之外,我仍然收到不需要的“Sheet1”。以下是相关代码:

using Excel = Microsoft.Office.Interop.Excel;
. . .
private Excel.Application _xlApp;
private Excel.Workbook _xlBook;
private Excel.Sheets _xlSheets;
private Excel.Worksheet _xlSheet;
. . .
private void InitializeSheet()
{
_xlApp = new Excel.Application { SheetsInNewWorkbook = 1 };
_xlBook = _xlApp.Workbooks.Add(Type.Missing);
_xlBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
_xlSheets = _xlBook.Worksheets;
_xlSheet = (Excel.Worksheet)_xlSheets.Item[1];
_xlSheet.Name = String.Format("Price Compliance {0} {1}", _month, _year);
}

既然在 Excel.Application 实例中将 SheetsInNewWorkbook 设置为 1 并不能解决问题,我需要做些什么来防止这些临时工作表出现?

最佳答案

您的问题的答案可以在 Workbook.Add 方法的 Template 参数的文档中找到。

[...] If this argument is omitted, Microsoft Excel creates a new workbook with a number of blank sheets (the number of sheets is set by the SheetsInNewWorkbook property).

您的代码省略了它,因此它为您创建了一个工作表(因为您已将 SheetsInNewWorkbook 设置为 1。

该属性也被限制在 1 到 255 之间,因此您无法在没有工作表的情况下添加工作簿(除非您使用文件模板)。

同样来自 Template 参数文档:

If this argument is a constant, the new workbook contains a single sheet of the specified type. Can be one of the following Microsoft.Office.Interop.Excel.XlWBATemplate constants: xlWBATChart, xlWBATExcel4IntlMacroSheet, xlWBATExcel4MacroSheet, or xlWBATWorksheet.

因此另一种方法是:

_xlApp = new Excel.Application();
_xlBook = _xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
_xlSheets = _xlBook.Worksheets;
_xlSheet = (Excel.Worksheet)_xlSheets.Item[1];
_xlSheet.Name = String.Format("Price Compliance {0} {1}", _month, _year);

这只是重命名单个创建的工作表。

关于c# - 为什么即使我明确将工作表计数设置为 1,我也会得到一张多余的工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com