文档章节

项目使用excel模板写入图片总结

abcijkxyz
 abcijkxyz
发布于 2016/07/08 16:29
字数 571
阅读 4
收藏 0
点赞 0
评论 0
导出excel的问题,导出多个sheet使用模板方式还是api方式,不知道什么方式更好点
     讨论结果:
     1)使用模板方式,对于多余的sheel进行删除。
     2)建议在导出的过程中,将导出按钮灰掉,不让其操作。
     3)介绍使用jconsole监控导出性能,防止后期出现性能问题。
     4)jxl只支持png格式的图片,需要通过ImageIO对图片进行转换
     遇到问题:
     1)poi在向模板中插入图片的时候,如果模板存在批注,生产的文件会提示数据丢失,并且不能编译。
     2)如何将多张图片放在同一个单元格中显示。
样例代码:
package com.test;


import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;


import javax.imageio.ImageIO;


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;


public class ExcelPoi {


@SuppressWarnings("deprecation")
public void exportExcel() {
String realpath = "关注本地人员导出模板.xls";
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(realpath));
File target = new File("test1.xls");
HSSFSheet sheet = workbook.getSheet("fang");
HSSFCellStyle style = this.getStyle(workbook);


HSSFRow row = sheet.getRow(1);
HSSFCell cell = row.getCell((short) 2);
cell.setCellStyle(style);
cell.setCellValue("xx");
/**/

// 行高
//row = sheet.getRow(59);
//row.setHeight((short)5000);

BufferedImage bufferImg = null;
BufferedImage bufferImg1 = null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File("1.jpg"));
bufferImg1 = ImageIO.read(new File("2.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
ImageIO.write(bufferImg1, "jpg", byteArrayOut1);

HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 174, 190, (short) 2, 59, (short) 2, 59);
//HSSFClientAnchor anchor1 = new HSSFClientAnchor(174, 0, 350, 160, (short) 2, 59, (short) 2, 59);
//anchor1.setAnchorType(2);
patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
//patriarch.createPicture(anchor1, workbook.addPicture(byteArrayOut1.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));


//byteArrayOut.close();
//byteArrayOut1.close();

//workbook.removeSheetAt(2);
FileOutputStream fos = new FileOutputStream(target);
workbook.write(fos);
fos.flush();
fos.close();



} catch (Exception e) {
e.printStackTrace();
}


System.out.println("成功导出Excel!!!!");
}


public HSSFCellStyle getStyle(HSSFWorkbook workbook) {
//      设置字体; 
HSSFFont font = workbook.createFont();
//设置字体大小; 
font.setFontHeightInPoints((short) 10);
//设置字体名字; 
font.setFontName("仿宋_GB2312");
//font.setItalic(true); 
//font.setStrikeout(true); 
//      设置样式; 
HSSFCellStyle style = workbook.createCellStyle();
//设置底边框; 
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//设置底边框颜色; 
style.setBottomBorderColor(HSSFColor.BLACK.index);
//设置左边框; 
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//设置左边框颜色; 
style.setLeftBorderColor(HSSFColor.BLACK.index);
//设置右边框; 
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
//设置右边框颜色; 
style.setRightBorderColor(HSSFColor.BLACK.index);
//设置顶边框; 
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
//设置顶边框颜色; 
style.setTopBorderColor(HSSFColor.BLACK.index);
//在样式用应用设置的字体; 
style.setFont(font);
//设置自动换行; 
style.setWrapText(false);
//设置水平对齐的样式为居中对齐; 
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
//设置垂直对齐的样式为居中对齐; 
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
return style;
}


public static void main(String[] args) {
ExcelPoi excelpoi = new ExcelPoi();
excelpoi.exportExcel();
}
}

本文转载自:http://blog.csdn.net/yuwenruli/article/details/7815352

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
ireport报表中无法识别的生僻字的使用图片代替

在利用ireport输出报表的时候,有些生僻字无法处理,报的异常为--->数组下标越界 在网上查找了相关资料,没有找到解决办法,实在没辙了,只能使用图片代替了... 步骤:(假设在模板中放入生僻字的是...

文文1
2016/07/19
33
0
Crab2Died/Excel4J

Excel4J v2.x 一. v2.x新特性 Excel读取支持部分类型转换了(如转为Integer,Long,Date(部分)等) v2.0.0之前只能全部内容转为String Excel支持非注解读取Excel内容了,内容存于对象内 现在支持导...

Crab2Died
2017/06/11
0
0
Go 语言读写 Excel 文档

Excelize 是 Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片...

xurime
2017/05/11
0
0
JAVA使用POI操作excel

一直想写一个poi的使用的总结,话说我第一份正式工作接到的第一个工作就是当时TL让我去整理项目的数据字典,即把内容插入到CSV上,然后把csv的内容插入到数据库中,而且我印象极深的当时使用...

王小明123
2013/01/09
0
12
循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习...

walb呀
2017/12/04
0
0
操作 Office Excel 文档类库 - Excelize

Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有...

xuri
2016/08/30
0
1
EasyPoi 2.3.0.1 版本发布

easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,PDF导出,Excel转HTML,Excel charts导出通过简单的...

Anotherjueyue
2016/01/21
8.1K
13
使用POI操作Excel的几点注意事项

首先说说现在我所知道的Java编辑Excel文件的两大开源工具: jakarta POI和JavaExcel API(简称JXL),这两套工具我都试用了一这段时间,感觉各有优劣吧。POI在某些细节有些小Bug并且不支持写...

红薯
2008/12/05
2.4K
2
Java基础系列19:使用JXL或者POI生成和解析Excel文件

一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析。 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前。相反,poi属于Apache开...

pangfc
2016/12/07
0
0
C#对Excel的一些操作【一】

C#操作Excel的方式多种多样,以下为个人实践中的一些总结,留个笔记方便以后查看,陆续更新中。。。 进入正题: 一:将Excel的数据直接导入到SQL数据库中 这个需要Excel文件与数据库中的表的...

allen_chen_0118
2012/08/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RESTful API 设计规范

关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止; 应该 (S...

niithub
10分钟前
0
0
Spring Cloud云服务架构 - common-service 项目过程构建

我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习。 首先在构建spring cloud的common-service之前,我们需要准备的技术: Maven(项目构建)...

itcloud
11分钟前
0
0
oracle 如何查看日志?

Oracle日志查看一.Oracle日志的路径:登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二.Oracle日...

youfen
12分钟前
0
0
sap netweaver developer studio安装svn插件

问题 我现在在Sap的IDE(netweaver developer studio)上面安装svn插件。 步骤 确定IDE使用的eclipse版本 Help→About SAP NetWeaver Developer Studio→Installation Details→Features→F...

亚林瓜子
19分钟前
0
0
大数据开发学习的内容介绍,成都大数据培训机构哪里好?

大数据开发培训已经成为了越来越多人的选择,大数据开发工程师也是各公司争相争夺的金领人才之一了,在当今科技发展非常迅速的社会里,越来越多人把职业规划投向了大数据开发。这里为大家整理...

加米谷大数据
24分钟前
2
0
函数

函数 函数是Python中最主要也是最重要的代码组织和复用手段。作为最重要的原则,如果你要重复使用相同或非常类似的代码,就需要写一个函数。通过给函数起一个名字,还可以提高代码的可读性。...

火力全開
25分钟前
0
0
gulp-webserverf启动服务,局域网无法访问

如题,gulp-server启动的服务,只能本机访问,局域网通过ip无法访问; 启动的其它项目,均可以访问成功; 网上资源,很多说什么防火墙之类的问题,都无果; 只需要给启动服务添加参数即可, ...

littleFaye
27分钟前
0
0
RabbitMQ实战:5种模式和示例

应用RabbitMQ的5种队列 一、简单队列 P:消息的生产者 C:消息的消费者 红色:队列 生产者实现思路: 创建连接工厂ConnectionFactory,设置服务地址127.0.0.1,端口号5672,设置用户名、密码...

spinachgit
28分钟前
0
0
mysql常见报错标号对应原因以及处理方法

mysql常见报错标号以及对应解决方法 报错标号 报错现象 解决方法 原因 1449 Cause: java.sql.SQLException: The user specified as a definer ('authplat_dev'@'%') does not exist 在控制台...

ChinaHYF
30分钟前
0
0
Java 监控系统技术选型

(1)操作系统监控 Sigar oshi (2)Tomcat监控 JMX 日志 (3)Oracle监控 日志 直连SQL查询 基于Druid连接池 (4)拓扑图 jtopo http://www.jtopo.com/demo/statictis.html...

cccyb
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部