前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >炫酷转换:Java实现Excel转换为图片的方法

炫酷转换:Java实现Excel转换为图片的方法

作者头像
葡萄城控件
发布2023-10-16 16:55:47
5420
发布2023-10-16 16:55:47
举报
文章被收录于专栏:葡萄城控件技术团队

前言

在实际开发过程中,经常会有这样的需求:将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方法将工作表转换为图片:

代码语言:javascript
复制
// 创建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方法将工作表中的特定区域转换为图片:

代码语言:javascript
复制
// 创建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 转换为图片:

代码语言:javascript
复制
// 创建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 转换为图片:

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档