当我在apache poi库中使用Calibri字体时,列宽度在runnable jar中不正确

时间:2014-06-11 06:49:56

标签: java swing apache-poi

我使用apache poi构建了一个java应用程序。 它是一个简单的swing gui应用程序,它使用apache poi库生成excel。生成工作表后我设置了autofit列,当我使用RAD运行应用程序时工作正常。现在我有生成的runnable 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
    }
}

1 个答案:

答案 0 :(得分:1)

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

标题:new Font(Font.SansSerif, Font.BOLD | Font.ITALIC, 14)

默认值:new Font(Font.Serif, Font.PLAIN, 12)