【发布时间】:2013-05-09 09:19:34
【问题描述】:
我正在使用 SpreadsheetGear 生成 Excel 工作表。我想对从第 10 行开始的列应用数字格式。
但是当我使用下面的代码时,它会为整个列应用格式。
worksheet.Cells[10, 2].EntireColumn.NumberFormat = "@";
如何确保从第 10 行开始的整列都应用格式。
【问题讨论】:
标签: spreadsheetgear
我正在使用 SpreadsheetGear 生成 Excel 工作表。我想对从第 10 行开始的列应用数字格式。
但是当我使用下面的代码时,它会为整个列应用格式。
worksheet.Cells[10, 2].EntireColumn.NumberFormat = "@";
如何确保从第 10 行开始的整列都应用格式。
【问题讨论】:
标签: spreadsheetgear
这可以通过多种方式实现。一种可能是从整个列中“减去”前 10 行,这可以使用 IRange.Subtract() 来完成。示例:
// First obtain a reference to all of Column C, then "subtract" the first 9 rows from it
IRange range = worksheet.Cells["C:C"].Subtract(worksheet.Cells["C1:C9"]);
// Apply your formatting...
range.NumberFormat = "@";
另一种方法是使用从零开始的索引来选择所需的范围,使用 IWorkbookSet.MaxRows 属性来确定最大行数(当前为 1,048,576,根据 Excel 的文件格式限制)。示例:
IRange range = worksheet.Cells[9, 2, worksheet.WorkbookSet.MaxRows - 1, 2];
最后,您可以使用 A1 样式的引用对范围进行硬编码,因为当前文件格式限制为 1,048,576 行。示例:
IRange range = worksheet.Cells["C10:C1048576"];
【讨论】: