通过C#为每个工作表创建多个Excel表

问题描述 投票:0回答:1

希望一切都好。

我有多个数量统计,每个数量都有一个特定的工作表。 当我想为他们创建表时遇到错误错误是“表名称无效” 该代码适用于单个工作表。

 // Filter schedules to be exported
 foreach (ViewSchedule schedule in scheduleCollector.Cast<ViewSchedule>())
 {
     if (selectedSchedules.Contains(schedule.Name))
     {
         exportSchedules.Add(schedule);
     }
 }

 // Export schedules to Excel
 using (ExcelPackage package = new ExcelPackage())
 {
     foreach (var schedule in exportSchedules)
     {.
      .
      .
      .
      .
      .
      .
     }

 table(dataRange,worksheet, schedule.Name);
 private void table(ExcelRange dataRange, ExcelWorksheet worksheet,string schedulenametable)
 {
     // Create Excel Table
     var table = worksheet.Tables.Add(dataRange, schedulenametable);

     table.TableStyle = TableStyles.Light1; // Choose a table style

     // Auto-filter on headers
     table.ShowHeader = true;
     table.ShowFilter = true;
     table.ShowTotal = false;
 }

`

如果您帮助我,我真的很感激。

我还用taskdialog检查了schedule.name,结果是每个数量的统一名称,但多表的idk怎么可能做到这一点?

c# export-to-excel epplus revit-api
1个回答
0
投票

我认为您的问题是 Revit 明细表的名称中可能包含 Excel 表格中不允许的字符。

查看此Excel 文档链接以了解允许的字符:

名称重要注意事项

使用有效字符 — 名称始终以字母、 下划线字符 (_) 或反斜杠 ()。使用字母、数字、 名称的其余部分使用句点和下划线字符。

例外:您不能使用“C”、“c”、“R”或“r”作为名称,因为 它们已被指定为选择列或的快捷方式 当您在“名称”或“转到”框中输入活动单元格的行时。

不要使用单元格引用 - 名称不能与单元格相同 参考,例如 Z$100 或 R1C1。

不要使用空格来分隔单词 — 空格不能在单词中使用 姓名。考虑如何不使用空格来书写名称。或者,使用 下划线字符 (_) 或句点 (.) 作为单词分隔符。示例: 销售部门、销售税或第一季度。

最多 255 个字符 — 表名称最多可包含 255 个字符。

使用唯一的表名称 - 不允许使用重复的名称。 Excel 没有 区分名称中的大写和小写字符,因此如果您 输入“Sales”,但同一名称中已有另一个名称“SALES” 工作簿,系统会提示您选择一个唯一的名称。

© www.soinside.com 2019 - 2024. All rights reserved.