【问题标题】:Aspose excel autofitcolumnAspose excel自动调整列
【发布时间】:2018-04-19 02:37:52
【问题描述】:

有一列,文本居中,生成excel时没有硬编码宽度。

生成excel时,文本溢出,无法显示整个文本。

(文本宽度为 20,但默认列宽仅为 10)

在 excel 中,我可以单击主页选项卡 > 格式 > 自动调整列宽,并更改宽度以适应文本长度。

为了模拟这个 AutoFitColumn 操作。

我尝试了下面的代码,但它不起作用。 (它执行但列宽没有正确调整(列宽显示整个文本)。

                    AutoFitterOptions afo = new AutoFitterOptions();
                    afo.AutoFitMergedCells = true;
                    afo.OnlyAuto = false;
                    ws.AutoFitColumns(col,col,afo);

【问题讨论】:

    标签: c# excel aspose


    【解决方案1】:

    此类问题通常是由字体引起的。假设,您的工作簿正在使用一些名为 ABC 的字体,但是当 Aspose.Cells 尝试自动适应您的列时,它无法找到名为 ABC 的字体,然后它使用了一些其他字体,例如DEF 而不是 ABC,因此会出现此类问题。

    您可以使用 Workbook.GetFonts() 方法在工作簿中找到字体列表。您应该将所有字体放在某个目录中并设置字体目录,或者在 Windows 操作系统的情况下,所有此类字体都应由您安装。详情请阅读这两篇文章。

    此外,我们已经测试了您的代码并且运行良好。请参阅以下示例代码、其 cmets 以及显示其生成的输出 Excel 文件的屏幕截图。如您所见,代码自动适合 D 列。

    C#

    //Create workbook
    Workbook wb = new Workbook();
    
    //Access first worksheet
    Worksheet ws = wb.Worksheets[0];
    
    //Set some data in column index 3 which is greater in length than column width.
    ws.Cells["D4"].PutValue("This is simple text. This is another.");
    
    //This is your code
    int col = 3;
    AutoFitterOptions afo = new AutoFitterOptions();
    afo.AutoFitMergedCells = true;
    afo.OnlyAuto = false;
    ws.AutoFitColumns(col, col, afo);
    
    //Save the output Excel file
    wb.Save("output.xlsx");
    

    截图:

    注意:我在 Aspose 担任开发人员宣传员

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 2018-02-02
      • 2023-01-31
      • 2012-01-26
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多