炫酷转换:Java实现Excel转换为图片的方法
  jEawyGT1dJk5 2023年11月18日 27 0


前言

在实际开发过程中,经常会有这样的需求:将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);

实现效果如下图所示:

炫酷转换:Java实现Excel转换为图片的方法_帮助手册

炫酷转换:Java实现Excel转换为图片的方法_初始化_02

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

实现效果如下图所示:

炫酷转换:Java实现Excel转换为图片的方法_帮助手册_03

炫酷转换:Java实现Excel转换为图片的方法_初始化_04

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

实现效果如下图所示:

炫酷转换:Java实现Excel转换为图片的方法_初始化_05

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

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_07

总结

以上就是关于如何在Java中将Excel转换为图片的介绍。如果您想了解更多有关于Java的玩法和技巧,可以参考这篇帮助手册,无论是初学者还是有经验的专业人士,该帮助手册都将为您提供有价值的指导和帮助。



作者:葡萄城技术开发团队

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月18日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   54   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   109   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
jEawyGT1dJk5