【问题标题】:Set row height using excellibrary使用 excellibrary 设置行高
【发布时间】:2013-05-06 15:26:44
【问题描述】:

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

【问题讨论】:

    标签: c# size cell excellibrary


    【解决方案1】:

    我猜你指的是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 property 公共字段确实被WorksheetEncoder line 55 写出,然后通过ROW 类@987654325 @方法进入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(" ");
        }
    }
    

    【讨论】:

    • 感谢您的回答,它对我也不起作用。你会推荐什么解决方法?如果可能的话,也许可以在没有 excellibrary 和其他库的情况下设置它?
    • 我认为如果行高很重要,您需要完全切换到另一种方法,例如Visual Studio office solutions
    猜你喜欢
    • 2011-03-13
    • 2013-06-11
    • 2011-11-23
    • 2020-12-07
    • 1970-01-01
    • 2011-09-21
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多