【发布时间】:2014-02-26 14:20:25
【问题描述】:
我正在尝试使用 SpreadsheetGear 将数据从 DataTable 导出到 Excel 文件中。 Excel 文件中的工作表将从带有列标题和特定格式的模板复制。为了便于维护(更改存储过程和模板以更改报告内容,而不是重新部署服务)我不想在代码中进行某些列格式设置,即列填充颜色。
我使用 SpreadsheetGear 的 CopyFromDataTable 进行导出。但是,InsertCells 标志不会导致数据采用其插入的行的格式(列填充颜色),如描述说明(“这允许对单元格进行预格式化”)。
我正在通过不使用 InsertCells 标志而只是在模板中的整个列上设置列填充颜色来解决此问题。但是,这会导致整个列被着色,包括超出使用范围。我想将格式限制在使用的范围内。
有什么方法可以清除 UsedRange 之外的任何格式?在我写这篇文章时,我意识到这种方法很复杂。但是格式化是强制性的,我想简化维护,只需要存储过程更改和模板更改。我愿意接受任何其他可能促进这一点的方法。
【问题讨论】:
-
澄清 - 表中的列数和行数是否不确定?否则,如果总是有固定数量的列和行,您可以在工作表模板中预设目标区域的格式。
-
@Xcheque - 列数是已知的,并且它们在模板中已预先格式化,只有行(不确定数量)才是问题所在。我不想格式化超过已用行数的列,如果我在模板中的整个列上设置填充颜色,就会发生这种情况。我无法让 SpreadsheetGear 插入的行为类似于 Excel 中的手动插入,其中插入的行采用上面插入的格式。
标签: c# excel formatting spreadsheetgear