2

我正在使用 excellibrary,我想设置行高或列宽。听起来很简单,但我找不到解决方案。我怎样才能做到这一点?

4

1 回答 1

2

我猜你指的是excellibrary?我现在没有在我面前加载它,但如果没有记错,请尝试:

Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");

worksheet.Cells[0, 0] = new Cell("Cell 0,0");
worksheet.Cells[1, 0] = new Cell("Cell 1,0");

ushort currentHeight = worksheet.Cells.GetRowHeight(1); 
worksheet.Cells.GetRow(1).Height = (ushort)(currentHeight + 20);

workbook.Worksheets.Add(worksheet);
workbook.Save(filePath); // will need to set filepath

编辑:虽然理论上这是正确的,但我实际上不确定这个属性是否有效(在 Excel 2010 和 Excel 2007 中进行了快速测试之后)。

如果您遵循源代码,那么显然RowHeight 属性public 字段确实被第WorksheetEncoder55 行写出,然后通过ROWEncode方法进入Stream写出工作簿,但是如果我随后在 Excel 中打开,它就不起作用。(我没有 2007 年之前的 Excel 版本可供测试)。

不幸的是,没有其他属性可用于设置行高。这是用于BinaryWriter生成工作簿的那个。

另请注意,如果您的目标是 Excel 2010,则需要在上述示例中填充一大块单元格,以确保最终文件足够大,以便 Excel 2010 满意。例如:

Workbook workbook = new Workbook(); 
Worksheet worksheet = new Worksheet("First Sheet"); 

//  Excel 2010 hack - issue 102
for (int r = 0; r < 150; r++) {
    for (int c = 0; c < 10; c++) {
        worksheet.Cells[r, c] = new Cell(" ");
    }
}
于 2013-05-12T15:29:41.343 回答