java poi操作创建xslx或xsl文件,存本地和进行网络传输两种方式集成
package com.java.zxf.util; import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* 用来生成xsls或xsl文件的类,生成后可以进行传输下载
* 注意:前台请不要使用ajax方式发送下载请求,因为其不支持.
* @author Administrator
*
*/
public class XSLXUtil {
/**
*
* @param response
* @param titlelist:一个list集合,用来指定表头信息
* @param objlist:一个list结合嵌套,内存list就是表头字段对应得一行数据
* @param filename:一个文件名,可以自己指定
* @throws IOException
*/
public static void getbook(HttpServletResponse response,List<String> titlelist,List<List<String>> objlist,String filename) throws IOException{
HSSFWorkbook wb = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet();
//这里是指定每列的宽度256=1字符,依次类推
for(int x=0;x<ShowString.GDTITLELEN.length;x++){
sheet.setColumnWidth(x,ShowString.GDTITLELEN[x]);
}
//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
//HSSFRow row1=sheet.createRow(0);
//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
//HSSFCell cell=row1.createCell(0);
//设置单元格内容
//cell.setCellValue("学员考试成绩一览表");
//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
//sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));
//在sheet里创建第二行 HSSFRow row1=sheet.createRow(0);
for(int i=0;i<titlelist.size();i++){
row1.createCell(i).setCellValue(titlelist.get(i));
}
for(int j=0;j<objlist.size();j++){
HSSFRow row=sheet.createRow(j+1);
List<String> temp = (List<String>) objlist.get(j);
for(int k=0;k<temp.size();k++){
HSSFCell cell = row.createCell(k);
cell.setCellValue(temp.get(k));
}
}
//测试阶段,将文件输出到本地进行存储
/*OutputStream os = new FileOutputStream("c:\\"+filename);
wb.write(os);
os.flush();
os.close();
SystemOut.classSystemOut("xslx文件创建成果", "");*/
response.reset();
OutputStream output=response.getOutputStream();
response.setHeader("Content-disposition", "attachment; filename="+ URLEncoder.encode(filename, "UTF-8"));
response.setContentType("application/msexcel");
wb.write(output);
output.close();
SystemOut.classSystemOut("xslx文件创建成果", "");
}
}
package com.java.zxf.util;
import java.io.File;
public interface ShowString {
public static String picstorage = "imgs"+File.separator+"upload";
public static String picstorage1 = "imgs/upload";
public static int defaultEvaluatetime = 7;
public static int expireinterval = 2;
public static String GDTYPE = "gd";
public static String TJTYPE = "tj";
public static int[] GDTITLELEN = {40*256,256*20,256*20,12*256,30*256,12*256,20*256,15*256,15*256,20*256,30*256,50*256,16*256,15*256,20*256,15*256,10*256,15*256,150*256};
public static String GDTITLE[] = {"工单编号","机器编号","机器类型","报修人","公司名称","报修手机号","故障归类","工单发起时间","工单结束时间","故障现象","故障描述","报修地址","机器型号","期待服务时间","确认故障","过期时间","是否服务端报修","工单第一提报人","机器其它参数"};
public static String TJTITLE[] = {};
}
java poi操作创建xslx或xsl文件,存本地和进行网络传输两种方式集成的更多相关文章
- java多线程系类:基础篇:02常用的实现多线程的两种方式
本章,我们学习"常用的实现多线程的2种方式":Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多 ...
- AspNetCore 文件上传(模型绑定、Ajax) 两种方式 get到了吗?
就目前来说,ASP.NET Core2.1了,已经相当成熟了,希望下个项目争取使用吧!! 上传文件的三种方式("我会的,说不定还有其他方式") 模型绑定 Ajax WebUploa ...
- centos 6.6 ios镜像文件 下载 官网和阿里云两种方式教你下载
1百度一下:centos 打开打开官网.选择这一项 CET CENTOS 2选择 DVD ISO,双击下载 直接选择左键点击下载 这里需要迅雷 方法 二 打开 https://mirrors.aliy ...
- 文件处理seek以及修改内容的两种方式
f.seek(offset,whence)offset代表文件的指针的偏移量,单位是字节byteswhence代表参考物,有三个取值# 0:参照文件的开头# 1:参照当前文件指针所在位置# 2: 参照 ...
- java poi 操作ppt
java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...
- java中如何创建带路径的文件
请教各位大侠了,java中如何创建带路径的文件,说明下 这个路径不存在 ------回答--------- ------其他回答(2分)--------- Java code File f = new ...
- java poi 操作
Java POI 操作Excel(读取/写入) https://www.cnblogs.com/dzpykj/p/8417738.html Java操作Excel之Poi基本操作 https://my ...
- Hadoop之HDFS文件操作常有两种方式(转载)
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- IOS文件操作的两种方式:NSFileManager操作和流操作
1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...
随机推荐
- [转]sscanf函数具体用法
大学生程序代写 sscanf 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed v ...
- ffmpeg代码实现自定义encoder
1.概述 本文主要讲述如何用ffmpeg代码实现自己的encoder. 2.代码 /* *本程序主要实现一个自己的encoder并加入到encoder链中去,供api调用 *作者:缪国凯(MK) *8 ...
- Excel文本获取拼音
[说明] 版本:Excel 2010 文件后缀:.xls 有在.xlsb文件下使用未成功.建议使用.xls后缀. 1.调出“开发工具” 步骤:文件-->选项-->自定义功能区-->勾 ...
- bzoj 3752: Hack 预处理+暴力dfs
题目大意: 定义字符串的hash值\(h = \sum_{i=0}^{n-1}p^{n-i-1}s_i\) 现在给定K个长度不超过L的字符串S,对于每个字符串S,求字典序最小长度不超过L的字符串T使得 ...
- [转]HTTP Header 详解
HTTP Header 详解 HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模 型,浏览器或其他客户端发出请求 ...
- Centos6.5 安装pip
1.下载 sudo wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate 2.安装 python get-pip.py 参 ...
- spring IOC 注解@Required
@Required注解适用于bean属性的setter方法,使用@Required的方法必须在xml中填充,负责报错 例如下面的例子中,student中的setAge和setName有@Require ...
- 统计不同的单词(map应用)
题目描述: 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另一个单词.在判断是否满足条件时,字母不区分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有 ...
- wpf staticresource 是不允许向前引用(forward reference)的
不允许向前引用(forward reference)在C/C++中中很常见,即在语法上,未定义变量.类之前,不能使用. 没想到wpf中的wpf staticresource也遵循这种规则.资源字典中, ...
- 【转】深刻理解render 和 redirect_to
由于最近老是在表单提交后出现没有反应的现象,发现是在action中的使用render 和 redirect_to的原因,于是就想搞清楚他两真正的区别在哪里,上一遍的blog也谈到了这二者的区别,但是有 ...