当前位置: 代码网 > it编程>编程语言>Java > Java实现Excel转化为图片的代码详解

Java实现Excel转化为图片的代码详解

2025年08月04日 Java 我要评论
引言在实际开发里,常常存在将 excel 表格或特定区域转换为图片,以便在其他软件中使用的需求。在 java 开发中,借助报表插件能够轻松实现将工作表、任意指定区域以及各种形状类型转换为图片。本文将详

引言

在实际开发里,常常存在将 excel 表格或特定区域转换为图片,以便在其他软件中使用的需求。在 java 开发中,借助报表插件能够轻松实现将工作表、任意指定区域以及各种形状类型转换为图片。本文将详细介绍如何使用 java 达成 excel 到图片的转化。

正文

在 java 中将 excel 转化为图片

在java里,可运用 imagesaveoptions 类的方法把工作表、区域或形状导出为图片文件。以下是 imagesaveoptions 类的详细方法:

方法工作表区域形状描述
scalex and scaleyyesyesyes获取或设置导出图片文件的缩放比例
resolutionyesyesyes获取或设置导出图片文件中 jpeg 文件的 dpi
backgroundcoloryesyesyes获取或设置导出图片文件的背景颜色
showrowheadingsyesyesno获取或设置是否在导出的图片文件中显示行标题
showcolumnheadingsyesyesno获取或设置是否在导出的图片文件中显示列标题
showgridlinesyesyesno获取或设置是否在导出的图片文件中显示网格线
gridlinecoloryesyesno获取或设置导出图片文件中网格线的颜色
showdrawingobjectsyesyesno获取或设置是否在导出的图片文件中显示绘图对象(图表、形状或图片)
blackandwhiteyesyesyes获取或设置是否导出黑白图片

下面介绍分别将工作表、区域和形状转化为图片的方法:

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转图片内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com