如何解决使用Aspose.Cells把Excel文件转换成图片中文无法显示的问题

今天有个朋友说让搞一个把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");
		}
	}
}
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值