菜鸟之关于java web项目里导出excel,word 等简单总结
来源:互联网 发布:金益康人事软件 编辑:程序博客网 时间:2024/06/05 06:38
/*自己在Java web项目中根据后台返回的文本信息和图片url将文字和图片导出到excel 或者word中的实现方法总结。
在web项目中经常遇到导出office文档的功能。
本文主要为自己用过的几种网上常见的几种方法。(省去若干抛异常和后台数据处理部分,主要为用到导出的主要方法)*/
//一:首先要先设定浏览器的相应设置
//例:
response.setContentType("text/x-msdownload;charset=utf-8");
//作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
String dispposition = "inline; filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )+ ".xls";
response.setHeader("Content-Disposition", dispposition);//通信信息头MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。
out.clearBuffer();
out = pageContext.pushBody();//cleanBuffer()清除缓冲区防止repose留存其他数据
os = response.getOutputStream();//得到通向浏览器的输出流
} catch (IOException e1) {
e1.printStackTrace(); }
//二:执行相关方法从后台返回要显示的信息.
//三.导出部分
//1).WritableWorkbook类(填充文本方便但本人没有加过图片)
WritableWorkbook excl = null;//创建对象
try {
excl = Workbook.createWorkbook(os);//创建的文本是指向浏览器导出的
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
WritableSheet shet = excl.createSheet(fileName, 0);//创建excel的第一页
Label labl = new Label(i, j , str);
ws.addCell(labl);//sheet填充文本cell的方法
//文本填写完毕之后
excl.write();//WritableWorkbook输出操作
os.close();//关流
//2) HSSFWorkbook类(poi 功能强大,可以填充图片)
HSSFWorkbook excl = new HSSFWorkbook(); //创建一个新的excel
HSSFSheet shet = wb.createSheet(fileName); //创建excelsheet
HSSFRow rowi=ws.createRow(i);//创建一行
HSSFCell celli=rowi.createCell(0);//创建一个单元格
celli.setCellValue(str);//填充文本
URL url = new URL(Str2);//这里str2为url网址
URLConnection con = url.openConnection(); // 打开连接
con.setConnectTimeout(5*1000); //设置请求超时为5s
InputStream inimge = con.getInputStream(); //获取图片流
/*//测试是否下载的到
byte[] bs = new byte[1024];
int len;
File sf=new File("D:/new.png");
if(!sf.exists()){
sf.mkdirs();
}
OutputStream os2 = new FileOutputStream("D:/new.png");
while ((len = is.read(bs)) != -1) {
os2.write(bs, 0, len);
}
os2.close();
//is.close();
System.out.println("下载的到"); */
BufferedImage bufferImg = null; //图片缓存
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
bufferImg=ImageIO.read(inimge);
ImageIO.write(bufferImg, "jpg", byteArrayOut); //图片转换为字节数据输出流
HSSFPatriarch patriarch = ws.createDrawingPatriarch();
//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
//anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 3, i, (short) 7,i+4 ); //具体位置
anchor.setAnchorType(3);
//插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
excl.write(os);//输出到流
os.flush();
os.close();
//3)XWPFDocument类(poi 简单的word读写,替换等)
XWPFDocument word = null;
word=new XWPFDocument();// 创建Word文件
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
XWPFParagraph p= word.createParagraph();//创建段
XWPFRun r = p.createRun();
r.setText(str);//写文本
word.write(os);
os.close();
//4)Document类(itext,个人感觉处理word简单好用)
//Rectangle pageSize = new Rectangle(595, 842);//宽高
Document word = new Document();
word.setMargins(70, 70, 80, 50);//设置页边距
BufferedImage bufferImg = null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
try {
// 写入数据
String sj="";
String str="";
RtfWriter2.getInstance(word, os);
word.open();
if(sjyl.getMs().indexOf("<img src=\"")!=-1){//判读是否有图片网址
String str1=sjyl.getMs();
String[] Strs=str1.split("<");
String[] Strpng=str1.split("\"");
String urlstr=Strpng[1];//截取网址
URL url = new URL(urlstr);
URLConnection con = url.openConnection(); // 打开连接
//设置请求超时为5s
con.setConnectTimeout(5*1000);
InputStream is = con.getInputStream(); //获取图片流
bufferImg=ImageIO.read(is);
ImageIO.write(bufferImg, "jpg", byteArrayOut);
Image img = Image.getInstance(byteArrayOut.toByteArray());
img.setAbsolutePosition(0, 0);
img.setAlignment(Image.LEFT);// 设置图片显示位置
stri=Strs[0];//截取网址
Paragraph p = new Paragraph(str+stri);
word.add(p);
word.add(img);
}else{
stri=sjyl.getMs();
Paragraph p = new Paragraph(str+stri);
word.add(p);
}
}
word.close();
在web项目中经常遇到导出office文档的功能。
本文主要为自己用过的几种网上常见的几种方法。(省去若干抛异常和后台数据处理部分,主要为用到导出的主要方法)*/
//一:首先要先设定浏览器的相应设置
//例:
response.setContentType("text/x-msdownload;charset=utf-8");
//作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
String dispposition = "inline; filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )+ ".xls";
response.setHeader("Content-Disposition", dispposition);//通信信息头MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。
out.clearBuffer();
out = pageContext.pushBody();//cleanBuffer()清除缓冲区防止repose留存其他数据
os = response.getOutputStream();//得到通向浏览器的输出流
} catch (IOException e1) {
e1.printStackTrace(); }
//二:执行相关方法从后台返回要显示的信息.
//三.导出部分
//1).WritableWorkbook类(填充文本方便但本人没有加过图片)
WritableWorkbook excl = null;//创建对象
try {
excl = Workbook.createWorkbook(os);//创建的文本是指向浏览器导出的
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
WritableSheet shet = excl.createSheet(fileName, 0);//创建excel的第一页
Label labl = new Label(i, j , str);
ws.addCell(labl);//sheet填充文本cell的方法
//文本填写完毕之后
excl.write();//WritableWorkbook输出操作
os.close();//关流
//2) HSSFWorkbook类(poi 功能强大,可以填充图片)
HSSFWorkbook excl = new HSSFWorkbook(); //创建一个新的excel
HSSFSheet shet = wb.createSheet(fileName); //创建excelsheet
HSSFRow rowi=ws.createRow(i);//创建一行
HSSFCell celli=rowi.createCell(0);//创建一个单元格
celli.setCellValue(str);//填充文本
URL url = new URL(Str2);//这里str2为url网址
URLConnection con = url.openConnection(); // 打开连接
con.setConnectTimeout(5*1000); //设置请求超时为5s
InputStream inimge = con.getInputStream(); //获取图片流
/*//测试是否下载的到
byte[] bs = new byte[1024];
int len;
File sf=new File("D:/new.png");
if(!sf.exists()){
sf.mkdirs();
}
OutputStream os2 = new FileOutputStream("D:/new.png");
while ((len = is.read(bs)) != -1) {
os2.write(bs, 0, len);
}
os2.close();
//is.close();
System.out.println("下载的到"); */
BufferedImage bufferImg = null; //图片缓存
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
bufferImg=ImageIO.read(inimge);
ImageIO.write(bufferImg, "jpg", byteArrayOut); //图片转换为字节数据输出流
HSSFPatriarch patriarch = ws.createDrawingPatriarch();
//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
//anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 3, i, (short) 7,i+4 ); //具体位置
anchor.setAnchorType(3);
//插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
excl.write(os);//输出到流
os.flush();
os.close();
//3)XWPFDocument类(poi 简单的word读写,替换等)
XWPFDocument word = null;
word=new XWPFDocument();// 创建Word文件
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
XWPFParagraph p= word.createParagraph();//创建段
XWPFRun r = p.createRun();
r.setText(str);//写文本
word.write(os);
os.close();
//4)Document类(itext,个人感觉处理word简单好用)
//Rectangle pageSize = new Rectangle(595, 842);//宽高
Document word = new Document();
word.setMargins(70, 70, 80, 50);//设置页边距
BufferedImage bufferImg = null;
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
try {
// 写入数据
String sj="";
String str="";
RtfWriter2.getInstance(word, os);
word.open();
if(sjyl.getMs().indexOf("<img src=\"")!=-1){//判读是否有图片网址
String str1=sjyl.getMs();
String[] Strs=str1.split("<");
String[] Strpng=str1.split("\"");
String urlstr=Strpng[1];//截取网址
URL url = new URL(urlstr);
URLConnection con = url.openConnection(); // 打开连接
//设置请求超时为5s
con.setConnectTimeout(5*1000);
InputStream is = con.getInputStream(); //获取图片流
bufferImg=ImageIO.read(is);
ImageIO.write(bufferImg, "jpg", byteArrayOut);
Image img = Image.getInstance(byteArrayOut.toByteArray());
img.setAbsolutePosition(0, 0);
img.setAlignment(Image.LEFT);// 设置图片显示位置
stri=Strs[0];//截取网址
Paragraph p = new Paragraph(str+stri);
word.add(p);
word.add(img);
}else{
stri=sjyl.getMs();
Paragraph p = new Paragraph(str+stri);
word.add(p);
}
}
word.close();
0 0
- 菜鸟之关于java web项目里导出excel,word 等简单总结
- Excel导出学习之道:Java Web利用POI导出Excel简单例子
- Java web项目利用POI导出excel
- 【项目总结】之——导出Excel
- java 项目利用POI导出excel总结
- JAVA WEB 导出 Word
- Web导出Excel总结
- Spring+struts2+hibernate框架的Java Web项目利用POI导出Excel简单例子
- Java Web 导出Excel 之路径选择
- Java Web篇:导出等比例图片到Excel
- FastReport 打印和导出 Excel、Word 等
- FastReport 打印和导出 Excel、Word 等
- easyui导出Excel、Word java
- easyui导出Excel、Word java
- web项目导出word之用blob保存的图片
- java web项目利用freemarker导出word文件小例子
- java web excel 导出
- ASP.NET中导出excel/word等类型文件的简单方法
- 我为什么从程序员转行做了产品经理
- iOS10关于ATS的问题
- BatteryHistrian 学习
- 使用NPOI按照模版导出导入excle表
- HIVE 、DB2及GBASE 8A MPP数据类型之间的转换
- 菜鸟之关于java web项目里导出excel,word 等简单总结
- 手机客户端弱网络下的断线重连处理
- Android WebView 开发详解(一)
- android 抛物线下载动画
- C语言实例7——打印出的水仙花数”
- CRC16校验程序
- import tensorflow.contrib.slim as slim ImportError: No module named slim
- Leetcode 455 Assign Cookies
- MySQL5.7版本安装教程