引言
在实际开发里,常常存在将 excel 表格或特定区域转换为图片,以便在其他软件中使用的需求。在 java 开发中,借助报表插件能够轻松实现将工作表、任意指定区域以及各种形状类型转换为图片。本文将详细介绍如何使用 java 达成 excel 到图片的转化。
正文
在 java 中将 excel 转化为图片
在java里,可运用 imagesaveoptions 类的方法把工作表、区域或形状导出为图片文件。以下是 imagesaveoptions 类的详细方法:
| 方法 | 工作表 | 区域 | 形状 | 描述 |
|---|---|---|---|---|
| scalex and scaley | yes | yes | yes | 获取或设置导出图片文件的缩放比例 |
| resolution | yes | yes | yes | 获取或设置导出图片文件中 jpeg 文件的 dpi |
| backgroundcolor | yes | yes | yes | 获取或设置导出图片文件的背景颜色 |
| showrowheadings | yes | yes | no | 获取或设置是否在导出的图片文件中显示行标题 |
| showcolumnheadings | yes | yes | no | 获取或设置是否在导出的图片文件中显示列标题 |
| showgridlines | yes | yes | no | 获取或设置是否在导出的图片文件中显示网格线 |
| gridlinecolor | yes | yes | no | 获取或设置导出图片文件中网格线的颜色 |
| showdrawingobjects | yes | yes | no | 获取或设置是否在导出的图片文件中显示绘图对象(图表、形状或图片) |
| blackandwhite | yes | yes | yes | 获取或设置是否导出黑白图片 |
下面介绍分别将工作表、区域和形状转化为图片的方法:
1. 将工作表转换为图片
在 java 中,可使用 iworksheet 接口的 toimage 方法将工作表转换为图片。示例代码如下:
// 创建workbook
workbook workbook = new workbook();
iworksheet worksheet = workbook.getworksheets().get(0);
// 添加数据
worksheet.getrange("a1").setvalue("sales report");
worksheet.getrange("a1").getfont().setcolor(color.fromargb(56, 93, 171));
worksheet.getrange("a1").getfont().setsize(24);
worksheet.getrange("a1").getfont().setbold(true);
worksheet.getrange("a3:e7")
.setvalue(new object[][] { { "date", "product", "customer", "amount", "show" },
{ "1/1/2021", "bose 785593-0050", "fabrikam, inc.", "$1,886.00", "1" },
{ "1/3/2021", "canon eos 1500d", "alpine ski house", "$4,022.00", "" },
{ "1/4/2021", "haier 394l 4star", "coho winery", "$8,144.00", "" },
{ "1/7/2021", "ifb 6.5 kg fullyauto", "southridge video", "$8,002.00", "1" } });
// 初始化 imagesaveoptions 并且配置属性
imagesaveoptions options = new imagesaveoptions();
options.setscalex(3.0);
options.setscaley(2.0);
options.setshowrowheadings(true);
options.setshowcolumnheadings(false);
options.setshowdrawingobjects(true);
options.setbackgroundcolor(color.fromargb(226, 231, 243));
options.setshowgridlines(true);
options.setgridlinecolor(color.fromargb(145, 167, 214));
// 直接把工作表保存为图片
worksheet.toimage("worksheettoimage.png");
// 通过imagesaveoptions把工作表保存为图片
worksheet.toimage("worksheettoimage_usingimagesaveoptions.png", options);
实现效果如下:


2. 将区域转换为图片
在 java 中,可使用 irange 接口的 toimage 方法将工作表中的特定区域转换为图片。示例代码如下:
// 创建workbook
workbook workbook = new workbook();
iworksheet worksheet = workbook.getworksheets().get(0);
// 添加数据
worksheet.getrange("d10:f10").setvalue(new string[] { "device", "quantity", "unit price" });
worksheet.getrange("d11:f14").setvalue(new object[][] { { "t540p", 12, 9850 }, { "t570", 5, 7460 },
{ "y460", 6, 5400 }, { "y460f", 8, 6240 } });
irange range = worksheet.getrange("d10:f14");
// 初始化 imagesaveoptions 并且配置属性
imagesaveoptions options = new imagesaveoptions();
options.setscalex(3.0);
options.setscaley(2.0);
options.setshowrowheadings(true);
options.setshowcolumnheadings(false);
options.setshowdrawingobjects(true);
options.setbackgroundcolor(color.fromargb(226, 231, 243));
options.setshowgridlines(true);
options.setgridlinecolor(color.fromargb(145, 167, 214));
// 直接把区域保存为图片
range.toimage("rangetoimage.png");
// 通过 imagesaveoptions 保存区域为图片
range.toimage("rangetoimage_usingimagesaveoptions.png", options);
实现效果如下:


3. 将形状转换为图片
在 java 中,可使用 imagesaveoptions 方法将形状转化为图片。
- 将 shape 转换为图片:
// 创建workbook
workbook workbook = new workbook();
iworksheet worksheet = workbook.getworksheets().get(0);
// 添加一个椭圆形状
ishape shape = worksheet.getshapes().addshape(autoshapetype.oval, 20, 20, 200, 100);
// 初始化 imagesaveoptions 并且配置属性
imagesaveoptions options = new imagesaveoptions();
options.setscalex(3.0);
options.setscaley(2.0);
options.setbackgroundcolor(color.getlimegreen());
// 直接保存为形状
shape.toimage("shapetoimage.png");
// 通过 imagesaveoptions 来保存图片
shape.toimage("shapetoimage_usingimagesaveoptions.png", options);
实现效果如下:


- 将 chart 转换为图片:
// 创建workbook
workbook workbook = new workbook();
iworksheet worksheet = workbook.getworksheets().get(0);
// 准备图表的数据
worksheet.getrange("a1:d4")
.setvalue(new object[][] { { null, "q1", "q2", "q3" }, { "mobile phones", 1330, 2345, 3493 },
{ "laptops", 2032, 3632, 2197 }, { "tablets", 6233, 3270, 2030 } });
worksheet.getrange("a:d").getcolumns().autofit();
// 增加面积图
ishape shape = worksheet.getshapes().addchart(charttype.area, 250, 20, 360, 230);
// 给seriescollection添加系列
shape.getchart().getseriescollection().add(worksheet.getrange("a1:d4"), rowcol.columns, true, true);
// 设置图表标题
shape.getchart().getcharttitle().gettextframe().gettextrange().getparagraphs().add("annual sales record");
// 保存为图片
shape.toimage("convertcharttoimage.png");
实现效果如下:

结论
到此这篇关于java实现excel转化为图片的代码详解的文章就介绍到这了,更多相关java excel转图片内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论