当前位置: 首页 > news >正文

Java 实现 Excel 转化为图片

引言

在实际开发里,常常存在将 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 的玩法和技巧,可参考相关帮助手册,无论是初学者还是有经验的专业人士,该帮助手册都能提供有价值的指导和帮助 ^^。

文章中使用到的工具:GcExcel-Java

http://www.xdnf.cn/news/1021213.html

相关文章:

  • 亚远景-如何高效实施ASPICE认证标准:汽车软件企业的实践指南
  • nvue全攻略:从入门到性能优化
  • 如何使用 Python 对Bing搜索进行抓取
  • DSPC6678使用CCS开发的任务/中断分析功能(RTOS Analyzer)
  • 优傲机器人推出全新关节扭矩直接控制技术,助力科研与AI应用创新
  • Swift concurrency 9 — Sendable 协议:跨任务共享数据的安全保障
  • 猫狗翻译器!人和宠物无障碍交流!Good
  • 浪潮下的机器人竞技与创新突破 ——QOGRISYS O9201 系列模组赋能智能未来
  • ROS 2安装 slam_toolbox
  • 多个机器人同时加载在rviz及gazebo同一个场景中
  • 【linux】简单的shell脚本练习
  • 常用库的使用net
  • SNN学习(4):真实的生物神经学中神经元和人脑结构学习
  • Java机器学习全攻略:从基础原理到实战案例详解
  • 「Linux中Shell命令」Shell命令基础
  • 异步爬虫---
  • 深入理解 PyTorch:从基础到高级应用
  • openeuler 虚拟机:Nginx 日志分析脚本
  • js 两个数组按照第二个数组的顺序排序
  • MoneyPrinterTurbo根据关键词自动生成视频
  • Windows MySQL8密码忘了解决办法
  • 全新NVIDIA Llama Nemotron Nano视觉语言模型在OCR基准测试中准确率夺冠
  • L1-078 吉老师的回归
  • https 证书链不完整问题解析与解决方案
  • 非本地地址调用摄像头需要https
  • python可视化:从《歌手2025》到同类型节目全面解析
  • MCP(模型上下文协议)——AI生态的“万能插座”
  • 爬百度图片如何解决{“antiFlag“:1,“message“:“Forbid spider access“}
  • 造成服务器宕机的原因都有哪些?
  • 【评测】Qwen3-Embedding与nomic-embed-text的召回效果对比