一  Java中excel转换为jpg/png图片

packagecom.thinkgem.jeesite.modules.task.util;importcom.aspose.cells.ImageFormat;importcom.aspose.cells.ImageOrPrintOptions;importcom.aspose.cells.SheetRender;importcom.aspose.cells.Workbook;importcom.aspose.cells.Worksheet;importjava.io.File;public classConvertToImage {public static voidConvertToImage (){

String dataDir= getDataDir(ConvertToImage.class);//Create a new Workbook object//Open a template excel file

Workbook book = null;try{//book = new Workbook(dataDir + "2018各项目情况.xlsx");

book = new Workbook("D:\\20180702_Game10002_DataReport.xls");//Get the first worksheet//Worksheet sheet = book.getWorksheets().get(0);

Worksheet sheet = book.getWorksheets().get(0);

sheet.getPageSetup().setLeftMargin(-20);

sheet.getPageSetup().setRightMargin(0);

sheet.getPageSetup().setBottomMargin(0);

sheet.getPageSetup().setTopMargin(0);//Define ImageOrPrintOptions

ImageOrPrintOptions imgOptions = newImageOrPrintOptions();//Specify the image format

imgOptions.setImageFormat(ImageFormat.getJpeg());

imgOptions.setCellAutoFit(true);

imgOptions.setOnePagePerSheet(true);//imgOptions.setDesiredSize(1000,800);//Render the sheet with respect to specified image/print options

SheetRender render = newSheetRender(sheet, imgOptions);//Render the image for the sheet//render.toImage(0, dataDir + "SheetImage.jpg");

render.toImage(0, "D:\\SheetImage.jpg");

}catch(Exception e) {

e.printStackTrace();

}

}

/**

* @paramfilepath .xls或者.xlsx文件的路径* @parampicpath jpg或者png图片的路径*/public static voidConvertToImage (String filepath ,String picpath){

String dataDir= getDataDir(ConvertToImage.class);//Create a new Workbook object//Open a template excel file

Workbook book = null;try{//book = new Workbook(dataDir + "2018各项目情况.xlsx");

book = newWorkbook(filepath);//Get the first worksheet//Worksheet sheet = book.getWorksheets().get(0);

Worksheet sheet = book.getWorksheets().get(0);//Define ImageOrPrintOptions

ImageOrPrintOptions imgOptions = newImageOrPrintOptions();//Specify the image format

imgOptions.setImageFormat(ImageFormat.getJpeg());

imgOptions.setCellAutoFit(true);

imgOptions.setOnePagePerSheet(true);

imgOptions.setDefaultFont("200");//Render the sheet with respect to specified image/print options

SheetRender render = newSheetRender(sheet, imgOptions);//Render the image for the sheet//render.toImage(0, dataDir + "SheetImage.jpg");

render.toImage(0, picpath);

}catch(Exception e) {

e.printStackTrace();

}

}public staticString getDataDir(Class c) {

File dir= new File(System.getProperty("user.dir"));

System.out.println("shake" +dir.getAbsolutePath());

dir= new File(dir, "src");

dir= new File(dir, "main");

dir= new File(dir, "resources");for (String s : c.getName().split("\\.")) {

dir= newFile(dir, s);

}if(dir.exists()) {

System.out.println("Using data directory: " +dir.toString());

}else{

dir.mkdirs();

System.out.println("Creating data directory: " +dir.toString());

}return dir.toString() +File.separator;

}public static voidmain (String[] args ){

ConvertToImage();

}

}

二 linux系统中采用aspose-cells-18.6.jar包生成图片中文乱码

具体解决方案:参考帖子

在Windows中一切良好,中英文都能很好的展示,但是在我将程序部署到Linux中后,却出现生成的图片中中文全部乱码(显示成一个个的方框)。

1)查看服务器字体列表

[root@iZ2zez5rp1bmsZ share]# cd fc-list

bash: cd: fc-list: No such file or directory

悲哀,连字体库都没有

2)安装字体库

# 先安装fontconfig,用fontconfig来安装字体库

[root@iZ2zebjvdi1bmsZ share]# yum -y install fontconfig

Loaded plugins: fastestmirror

...

Installed:

fontconfig.x86_64 0:2.10.95-10.el7

Dependency Installed:

fontpackages-filesystem.noarch 0:1.44-8.el7

Complete!

fontconfig安装成功后在/usr/share目录中就会看到fonts和fontconfig两个目录(没装fontconfig之前是没有这两个目录的)

接下来就可以添加字体库了

3)添加字体

添加字体之前需要先下载相应的字体文件,博主用的是simsun.ttf(宋体)字体库,可以直接点击下载:下载simsun.zip

当然也可以去windows系统下的C:/windows/fonts目录下寻找合适的字体

字体文件准备好后,下边就正式开发操作

首先在/usr/share/fonts/目录下创建目录(名称随意)

mkdir chinese

然后将上方提供的

zip包中的两个文件全部解压并放到新建的目录(chinese)中,

然后修改chinese目录的权限

chmod -R 755 /usr/share/fonts/chinese

接下来需要安装ttmkfdir,这个命令的作用是搜索目录中所有的字体信息,汇总生成fonts.scale文件。

[root@iZ2zebjvditp1bmsZ fonts]# yum -y install ttmkfdir

Loaded plugins: fastestmirror

...

Installed:

ttmkfdir.x86_64 0:3.0.9-42.el7

Complete!

然后执行ttmkfdir命令:

[root@iZ2zz5rp1bmsZ fonts]# ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

最后修改字体配置文件

vi /etc/fonts/fonts.conf

如下添加配置

最后保存文件并执行fc-cache进行刷新字体缓存

OK,到此字体就安装完成,在看一下字体列表:

[root@iZ2zebrp1bmsZ fonts]# fc-list

/usr/share/fonts/chinese/simsun.ttc: SimSun\-PUA,宋体\-PUA:style=Regular

/usr/share/fonts/chinese/simsun.ttc: NSimSun,新宋体:style=Regular

/usr/share/fonts/chinese/simsun.ttf: SimSun,宋体:style=Regular

/usr/share/fonts/chinese/simsun.ttc: SimSun,宋体:style=Regular

4)重新测试生成文件

三  官网下载地址

java excel 转 图片_Java中excel转换为jpg/png图片 采用aspose-cells-18.6.jar相关推荐

  1. java excel表格导入_java中excel表格导入实例

    展开全部 需要32313133353236313431303231363533e59b9ee7ad9431333264623165导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 开放分 ...

  2. java excel 导入导出_java中excel文件的导入和导出

    如有需要可以加我Q群[308742428]大家一起讨论技术,提供技术支持. 后面会不定时为大家更新文章,敬请期待. 前端上传excel文件到后台,后台接收后保存数据到数据库. 这里需要说明的一点是前端 ...

  3. Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网

    核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...

  4. 3 - 图片灰度化与转换为八位灰度图片

    参考资料:彩色图像灰度化 图片灰度化与转换为八位灰度图片 1.灰度化公式 2.24 位真彩图灰度化 3.24 位真彩图转换成 8 位灰度图片 1.灰度化公式 彩色图像灰度化的算法公式一般有如下两种:明 ...

  5. java中excel上传_java对excel表格的上传和下载处理

    Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...

  6. Java 散点图 数据库 代码_Java 创建Excel散点图

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,表示因变量随自变量而变化的大致趋势,常用于比较跨类别的聚合数据.在excel中,支持创建散点图来实现数据分析,本文将通过java程序代码示例来 ...

  7. java 按钮设置图片_Java中如何设置带图片按钮的大小

    在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题, 按照方法:JButton jb1 = new JButton(); jb1.setBo ...

  8. excel插入行 uipath_Uipath中excel的activities用法介绍

    1.auto fill range – excel自动填充范围,如图:公式会自增,但数值没有 2.copy patse sheet,好像只能复制粘贴到同一个excel中 第一个是粘贴位置,第二个是粘贴 ...

  9. php转为图片,php中base64转换为图片的方法

    php中base64转换为图片的方法 发布时间:2020-08-31 09:56:18 来源:亿速云 阅读:100 作者:小新 小编给大家分享一下php中base64转换为图片的方法,相信大部分人都还 ...

  10. Java构造函数的使用_java中构造函数的使用方法

    java中构造函数的使用方法 发布时间:2020-06-26 18:08:07 来源:亿速云 阅读:113 作者:Leah 本篇文章为大家展示了java中构造函数的使用方法,代码简明扼要并且容易理解, ...

最新文章

  1. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray
  2. 你还以为,除了你自己就没有人懂你女朋友吗?
  3. Maven settings.xml配置Nexus
  4. 如何比较 Java 的字符串
  5. cmd c语言 文件,DSP,如何编写CMD文件!(转)
  6. 双系统引导修复失败进不了系统_教你安装双系统,win7+win10
  7. DNS 教父怒喷 DNS-over-HTTPS!
  8. c++之求数组的最大最小值及其下标
  9. 字符串的模板 Manacher kmp ac自动机 后缀数组 后缀自动机
  10. 解析:百度快照与站点权重的关系!
  11. MarkDown 和LaTex语法学习(基于软件Typora)
  12. 查看npy文件中存的是什么
  13. android模仿微信浮窗,Android仿微信视屏悬浮窗效果
  14. 2022上半年朋友圈都在传的10本书,找到了
  15. Excel文本自动换行
  16. Python淘宝App详情采集接口
  17. 微信企业号和手机关联的方式
  18. 制动电阻器的工作原理及应用特点
  19. 微信小程序----对接OneNet平台(测试版)
  20. c++重写卷积网络的前向计算过程,完美复现theano的测试结果

热门文章

  1. resourcehacker汉化版教程
  2. 极客爱情 2.4 | 和程序员男友过节是这样的
  3. VS中加入组件的方法
  4. exe图标修改器和EXE文件打不开了的办法
  5. 网络编程在线英英词典之注册模块实现(三)
  6. 简单实现select多选功能
  7. linux 小度 驱动_在Linux下使用小度WiFi
  8. 二维码生成器如何制作圆形二维码
  9. 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶)
  10. linux终端设置为管理员权限,ubuntu 中的管理员权限