首页 > 编程语言 >炫酷转换:Java实现Excel转换为图片的方法

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

时间:2023-10-12 09:11:45浏览次数:49  
标签:转换 ImageSaveOptions worksheet Excel 炫酷 workbook Yes options 图片

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

前言

在实际开发过程中,经常会有这样的需求:将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的玩法和技巧,可以参考这篇帮助手册,无论是初学者还是有经验的专业人士,该帮助手册都将为您提供有价值的指导和帮助。

扩展链接:

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

低代码开发平台是什么?

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

标签:转换,ImageSaveOptions,worksheet,Excel,炫酷,workbook,Yes,options,图片
From: https://www.cnblogs.com/powertoolsteam/p/17735035.html

相关文章

  • 如何将一个列表的列表转换为扁平列表?
    内容来自DOChttps://q.houxu6.top/?s=如何将一个列表的列表转换为扁平列表?我有一个列表的列表,如下所示:[[1,2,3],[4,5,6],[7],[8,9]]如何将其展平以获得[1,2,3,4,5,6,7,8,9]?如果您的列表的列表来自嵌套的列表推导式,可以通过修复推导......
  • # yyds干货盘点 # 盘点一个Python自动化办公Excel数据填充实战案例(番外篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。上一篇【论草莓如何成为冻干莓】大佬给出了两个方法,这一篇文章,一起来围观粉丝自己在实际运行过程中所遇到的问题。二、实现过程这里是【瑜亮老师】亲测代码是无误了,肯......
  • Java 导出Excel根据单元格内容计算并设置列宽度、行高
    话不多说,上代码:importorg.apache.poi.ss.usermodel.*;importorg.apache.poi.ss.util.CellRangeAddress;importjava.util.HashMap;importjava.util.Map;importjava.util.Objects;/***根据单元格内容计算并设置列宽度、行高*/publicclassExcelUtil{//......
  • 使用mapstruct做对象属性转换
    MapStruct是一个Java注解处理器,它可以自动生成类型安全的JavaBean映射代码。MapStruct的主要目的是简化JavaBean之间的映射,它通过注解来指定JavaBean之间的映射规则,然后自动生成映射代码。在MapStruct中,有几个常用的注解:@Mapper:用于指定一个JavaBean映射器接口,该接口定义......
  • .net 关于在program中使用AddNewtonsoftJson之后,继承于System.Text.Json.Serializatio
    首先,先说遇见的问题与代码示例,在.net代码中注册了如下代码.AddNewtonsoftJson(option=>{//使用本地时区option.SerializerSettings.DateTimeZoneHandling=DateTimeZoneHandling.Local;......
  • 导出excel文件总结
    使用alibaba的easyExcel一定要给要导出的类加注解,例:@ExcelProperty(value="文件传输结果(1=成功,0=失败,2=未传输)")导出的excel文件如果是只有属性没有值,查看自己的查询条件是否由默认值影响了异步导出,先确定好list是否为0,再返回成功如果导出的文件卡住了,也没有异......
  • 日期格式转换异常:Java 8 date/time type `java.time.LocalDateTime` not supported by
    异常信息:"unexpectederror:Typedefinitionerror:[simpletype,classjava.time.LocalDateTime];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Java8date/timetype`java.time.LocalDateTime`notsupportedbydefault:......
  • 解决前端传递Date类型时自动转换为国际时间的问题
    本质原因是前端对象中使用了Data类型的属性字段,在向后端传递时会自动将JSON对象转换为JSON字符串进行传递Date类型的属性在进行转换时会调用自身的toJSON方法,转换为国际时间的字符串表达形式letdate=newDate();console.log(date);console.log(JSON.stringify(date));导......
  • oss存储类型转换及解冻(下)
    oss存储类型转换及解冻(下)这篇就干货满满了,搞了我一天多,差点把我老命送走,也差点把阿里客服搞吐血,各种问题各种问(为了快速出结果),给领导交待  上篇提到,归档后的文件是无法访问的(除去归档直读),也说到我把一个月的测试文件分了三批,对应三种类型。一、筛选不同类型的文件......
  • Python自动筛选、删除Excel不处于给定区间的数据
      本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据剔除,保留符合我们需要的数据的方法。  首先,我们来明确一下本文的具体需求。现有一个Excel表格文件(在本文中我们就以.csv格式的文件为例),如下图所示。  其中,Exc......