今天有个朋友说让搞一个把Excel文件转换成图片的小工具,选用了Aspose.Cells组件来处理,按照官方的文档,写了几句代码就把图片生成出来了,可是生成的图片中,原来的中文全部变成小方块了,在官方论坛上发了一帖,几个小时(跟外国的时差)后就等到了回复,按照回复中的解释,应该是组件找不到所需的中文字体所致,只需要把字体路径告诉组件即可。
代码如下,有加注释的是新加的解决代码:
public static void main(String[] args) throws Exception {
// Creating an Workbook object with an Excel file path
Workbook workbook = new Workbook("C:\\book1.xls");
int cnt = workbook.getWorksheets().getCount();
System.out.println("Page Count: " + String.valueOf(cnt));
// Create an object for ImageOptions
ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
// Set the format type of the image
imgOptions.setImageFormat(ImageFormat.getJpeg());
//**********Add this line************//
CellsHelper.setFontDir("c:\\windows\\fonts");
for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
// Get the worksheet.
Worksheet sheet = workbook.getWorksheets().get(i);
// Create a SheetRender object with respect to your desired sheet
SheetRender sr = new SheetRender(sheet, imgOptions);
for (int j = 0; j < sr.getPageCount(); j++) {
// Generate image(s) for the worksheet
sr.toImage(j, "C:\\images\\book1_sheet_" + i + "_page_" + j + ".jpg");
}
}
}