java - 当我在 apache poi 库中使用 Calibri 字体时,可运行 jar 中的列宽无法正确显示

标签 java swing apache-poi

我使用 apache poi 构建了一个 java 应用程序。 这是一个简单的 swing gui 应用程序,它使用 apache poi 库生成 excel。生成工作表后,我设置了自动调整列,当我使用 RAD 运行应用程序时,它工作得很好。现在我已经生成了可运行的jar(这是我的要求)并且它生成了excel但是第二列之后的所有列都隐藏在彼此后面

我删除了自动调整大小列,并且列没有隐藏在彼此后面。但我希望我的列根据文本自动调整大小。请告诉我使用自动调整大小的正确方法是什么。以及为什么它在 RAD 中工作而不是在可运行的 jar 中工作。

我知道这是字体问题。我删除了设置字体名称的行,效果很好。现在我的问题是如何使用 Calibri 字体。请帮忙。

这是我编写Excel的代码:

public class Excel {
    HSSFWorkbook wb;
    HSSFFont head, defFont;

    public Excel() {
        wb = new HSSFWorkbook);
        //create header font to use Calibri and bold text
        //create default font to use Calibri and normal text
    }

    public void sheetGen() {
        HSSFSheet sheet = wb.creatSheet("sheet1");

        //create style
        //create each row and column
        for (int i = 1; i < 9; i++) {
            if (i != 2)
                sheet.autoSizeColumn(i);  //this is not working in runnable jar
        }
        //write workbook
    }
}

最佳答案

在某些平台上,Calibri 是第三方字体;例如,它包含在 Mac OS X 上的 Microsoft Office 中。相反,请使用五个 font families 中所需的逻辑字体。由Java平台定义。例如,

标题:新字体(Font.SansSerif,Font.BOLD | Font.ITALIC,14)

默认:新字体(Font.Serif, Font.PLAIN, 12)

关于java - 当我在 apache poi 库中使用 Calibri 字体时,可运行 jar 中的列宽无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156372/

相关文章:

java - 在 JavaFX 中向菜单添加动态条目

Java JFrame 创建关闭按钮

java - 当只有回车符 [13] 且没有 LF 时如何检测换行符

java - apache POI 中单元格的直接寻址

java 。 HSSF。 Apache -poi。如何修改代码

java - GAE 上用于 Web 服务的 2 向 SSL (java)

java - 树集的行为不同,但哈希集在自定义对象的情况下则不然

Java Swing,文本区域作为输入/输出?

java - JMenuItem 的工具提示

java - 如何仅对行和固定数量的列进行 for 循环?