gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:43:31 25 4
gpt4 key购买 nike

我想出了如何用 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
{
}
}
}

最佳答案

如果您查看 Worksheets.Add 的文档你得到:

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

因此,Add 方法既创建了新工作表,又指定了有关如何将其放入 Worksheets 集合的各种参数。

  • 在类型之前:System.Object 可选对象。一个对象,指定要在其前添加新工作表的工作表。
  • 在类型之后:System.Object 可选对象。一个对象,它指定在其后添加新工作表的工作表。
  • 计数类型:System.Object 可选对象。要添加的工作表数。默认值为一。
  • 类型 类型:System.Object 可选对象。指定工作表类型。可以是以下 XlSheetType 常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。

所以你需要做的就是:

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";

关于c# - 如何命名我制作的新 Excel 工作表并将其放在所有工作表的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797306/

25 4 0