摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

前言

在实际开发过程中,经常会有这样的需求:将Excel表格或特定区域转换为图片,以便在其他软件中使用。而在Java开发中,借助于报表插件可以轻松地将工作表、任意指定区域以及各种形状类型转换为图片。今天小编为大家介绍如何使用葡萄城公司的Java API组件——GcExcel将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方法将形状转化为图片。

3.1将 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);

实现效果如下图所示:

3.2将 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的玩法和技巧,可以参考这篇帮助手册,无论是初学者还是有经验的专业人士,该帮助手册都将为您提供有价值的指导和帮助。

扩展链接:

从表单驱动到模型驱动,解读低代码开发平台的发展趋势

低代码开发平台是什么?

基于分支的版本管理,帮助低代码从项目交付走向定制化产品开发

炫酷转换:Java实现Excel转换为图片的方法的更多相关文章

  1. Java中excel转换为jpg/png图片 采用aspose-cells-18.6.jar

    一  Java中excel转换为jpg/png图片 package com.thinkgem.jeesite.modules.task.util; import com.aspose.cells.Im ...

  2. C#将PDF转换为图片的方法

    1.需要添加引用  O2S.Components.PDFRender4NET 链接: https://pan.baidu.com/s/1ZPTaLTnFkex6QrsndLjwxg 提取码: jdh2 ...

  3. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法   1 2 String[] asset = {"equity", "stocks", "gold&q ...

  4. Java 将Excel转为图片、html、XPS、XML、CSV

    通过文档格式转换,可满足不同办公场合对文档操作的需求.本文将介绍转换Excel文档为其他常见文档格式的方法.通过文中的方法,可支持将Excel转换为包括PDF.图片.html.XPS.XML.CSV. ...

  5. JAVA中pdf转图片的方法

    JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文, ...

  6. Java中将对象转换为Map的方法

    将对象转换为Map的方法,代码如下: /** * 将对象转成TreeMap,属性名为key,属性值为value * @param object 对象 * @return * @throws Illeg ...

  7. Java 将Excel转为SVG的方法

    本文以Java示例展示如何将Excel文档转为SVG格式.通过本文中的方法,在将Excel转为SVG时,如果sheet工作表中手动设置了分页,则将每个分页的内容单独保存为一个svg文件,如果sheet ...

  8. java 读取excel poi 和cell 方法

    http://poi.apache.org/spreadsheet/quick-guide.html http://www.aspose.com/docs/display/cellsjava/Eval ...

  9. function的json对象转换字符串与字符串转换为对象的方法

    // json对象转换成字符串var str = JSON.stringify(json, function(key, val) { if (typeof val === 'function') { ...

  10. Java 将Excel转为XML

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通常,我们可以通过格式转换的方式来得到XML格式的文件.本文,将通过Java代码介绍如何实现由Excel ...

随机推荐

  1. 从实验中学习ResNet模型:在视频处理任务中取得显著进展

    目录 引言 技术原理及概念 实现步骤与流程 示例与应用 优化与改进 结论与展望 "从实验中学习ResNet模型:在视频处理任务中取得显著进展" 在视频处理任务中,ResNet模型已 ...

  2. 为什么 kubelet 不使用容器化部署?

    每日一问系列 为什么 kubelet 不使用容器化部署? 通过脚本(shell/ansible 等)在节点上部署 kubelet 服务时,涉及 kubelet 进程 service 启动配置.证书等, ...

  3. Java相关小知识_6_15

    实体完整性要求每个表都有唯一标识符,每一个表中的主键字段不能为空或者重复的值. 参照完整性要求关系中不允许引用不存在的实体.设定相应的更新删除插入规则来更新参考表. Java语言使用的是Unicode ...

  4. 【环境搭建】phpstudy显示目录列表

    问题来源 新版本的PHPStudy访问127.0.0.1不再像以前版本一样显示目录列表了 解决办法 打开vhosts.conf 将图中标记出来的一行Options FollowSymLinks Exe ...

  5. LeetCode 周赛上分之旅 #33 摩尔投票派上用场

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思 ...

  6. Redis解决网络抖动问题

    Redis解决网络抖动问题 所谓网络抖动问题, 简单来说就是防止用户短暂的时间内对同一个接口多次点击访问 这里利用的是redis锁的原子性和with Statement上下文管理器实现, 另外该类还支 ...

  7. C++与Java共同点

    前言 首先我们来了解一下C++语言,大多人都C++语言是C语言基础上的改编,所以它拥有一个和C语言一样的类似结构,但是它与Java又有不可分割的关系 接下来我们来看几道题: 例如:常数O运行次数与N大 ...

  8. Linux-基本常用命令2

    cat  查看文件内容 cat -n  查看文件内容并且显示行数 more 用vi的形式查看文件内容 less  类似于vim查看文件内容 echo 输出内容到控制台 echo -e  支持反斜线控制 ...

  9. 用 Tensorflow.js 做了一个动漫分类的功能(二)

    前言: 前面已经通过采集拿到了图片,并且也手动对图片做了标注.接下来就要通过 Tensorflow.js 基于 mobileNet 训练模型,最后就可以实现在采集中对图片进行自动分类了. 这种功能在应 ...

  10. Qt+GDAL开发笔记(二):在windows系统msvc207x64编译GDAL库、搭建开发环境和基础Demo

    前言   上一篇使用mingw32版本的gdal,过程曲折,为更好的更方便搭建环境,在windows上msvc方式对于库比较友好.   大地坐标简介 概述   大地坐标(Geodetic coordi ...