java excel表导入导出,javaweb导出excel表格
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
JAVA导出EXCEL表格的方法:
基本操作步骤:
首先,我们应该要知道的是,一个超过文件对应一个工作簿,一个练习本中有多个表组成,一个表是由多个行(行)和列(单元格)组成。
那么我们用poi要导出一个Excel表格的正确顺序应该是:
1、用可怕的电子表格格式工作簿打开或者创建“Excel文件对象"
2、用可怕的电子表格格式工作簿对象返回或者创建表对象
3、用表对象返回行对象,用行对象得到细胞对象
4、对细胞对象读写。
5、将生成的可怕的电子表格格式工作簿放入响应中响应到前端页面
导出Excel应用实例:
工具类代码:
包com。yq。util
导入org。阿帕奇。poi。hssf。用户模型。hssf细胞;
导入org。阿帕奇。poi。hssf。用户模型。hssfcellstyle
导入org。阿帕奇。poi。hssf。用户模型。HSS流程。
导入org。阿帕奇。poi。hssf。用户模型。hssf表;
导入org。阿帕奇。poi。hssf。用户模型。hssf工作簿;
公共类ExcelUtil {
/**
* 导出超过
* @param sheetName工作表名称
* @param标题标题
* @param值内容
* @param wb HSSFWorkbook对象
* @返回
*/
公共静态hssf工作簿gethssf工作簿(字符串工作表名称,字符串[]标题,字符串[][]值,hssf工作簿wb){
//第一步,创建一个可怕的电子表格格式工作簿,对应一个超过文件
if(wb==null){
WB=new hssf workbook();
}
//第二步,在练习本中添加一个床单,对应超过文件中的表
hssf工作表=WB。创建工作表(工作表名称);
//第三步,在表中添加表头第0行,注意老版本夏威夷芋泥饼对超过的行数列数有限制
HSS row row=sheet。创建行(0);
//第四步,创建单元格,并设置值表头设置表头居中
HSSFCellStyle style=WB。createcellstyle();
风格。设置对齐方式(HSSFCellStyle .ALIGN _ CENTER);//创建一个居中格式
//声明列对象
HSSFCell单元格=空
//创建标题
for(int I=0;it标题。长度;i ){
单元格=行。创建单元格(I);
细胞。setcellvalue(title[I]);
cell.setCellStyle(样式);
}
//创建内容
for(int I=0;ivalues.lengthi ){
行=工作表。创建行(i1);
for(int j=0;jvalues[i].长度;j ){
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[I][j]);
}
}
返回WB;
}
}控制器代码:
@控制器
@RequestMapping(value=/report )
公共类ReportFormController扩展基本控制器{
@Resource(name=reportService )
私有报表管理器reportService
/**
* 导出报表
* @返回
*/
@RequestMapping(value=/export )
@ResponseBody
公共空的导出(HttpServletRequest请求,HttpServletResponse响应)引发异常{
//获取数据
ListPageData list=reportservice。书目(第页);
//excel标题
String[] title={ 名称,性别,年龄,学校,班级};
//excel文件名
字符串文件名=学生信息表System.currentTimeMillis() .xls ;
//工作表名
字符串sheetName=学生信息表;
for(int I=0;我列出。size();i ) {
内容[i]=新字符串【标题。长度];
PageData obj=list。get(I);
content[i][0]=obj.get(stuName ).tostring();
内容[I]=obj . get( stu sex ).tostring();
内容[I]=obj . get( stu age ).tostring();
内容[I][3]=对象。get( stu学校名称).tostring();
内容[I][4]=对象。get( stu类名).tostring();
}
//创建可怕的电子表格格式工作簿
hssf工作簿WB=excelutil。gethssf工作簿(工作表名称、标题、内容、null);
//响应到客户端
尝试{
this.setResponseHeader(响应,文件名);
输出流OS=响应。获取输出流();
WB。写(OS);
OS。flush();
OS。close();
} catch(异常e) {
e。printstacktrace();
}
}
//发送响应流方法
公共void setresponse头(http servlet响应响应,字符串文件名){
尝试{
尝试{
文件名=新字符串(fileName.getBytes(), ISO8859-1 );
} catch(UnsupportedEncodingException e){
//TODO自动生成的捕捉块
e。printstacktrace();
}
回应。设置内容类型(‘应用程序/八位字节流;charset=iso 8859-1’);
回应。设置标题(内容-处置,附件;fileName= fileName);
response.addHeader(Pargam , no-cache );
回应。添加标头(“Cache-Control”、“no-Cache”);
} catch (Exception ex) {
前任。printstacktrace();
}
}
}前端页面代码:
按钮id= js-export type= button class= BTN BTN-小学导出excel/按钮
$(#js-export ).单击(函数(){
窗户。位置。href=/report/exportbookstable。做;
});以上就是爪哇岛如何导出超过表格的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。