aspose导出表格到word
来源:互联网 发布:移动网络宽带投诉电话 编辑:程序博客网 时间:2024/04/30 05:32
获取数据并且画表格方法,若从前台调用,用以下方式
window.location.href=”${_baseUrl}/dd/exportDoc;
public void exportDoc(HttpServletResponse response){ documentService.setUnlimitedLicense(); try { //创建document对象 Document document = new Document(); DocumentBuilder builder = new DocumentBuilder(document); builder.moveToDocumentEnd(); // 设置文档方向--横向 builder.getPageSetup().setOrientation(Orientation.LANDSCAPE); // 这里写内容…… builder.getParagraphFormat().setAlignment(1); builder.writeln("表格名称"); builder.startTable(); HttpSession session = request.getSession(); String tableJson = (String) session.getAttribute("tableJson"); session.removeAttribute("tableJson"); String[] cellArray = {}; String[] rowArray = {}; String[] colArray = tableJson.split(";"); //先将字符串转换为列数组,每个元素为一行 double fontSize = 5; Map<Integer,Integer> rowSpanMap = new HashMap<Integer, Integer>(); for(int i = 0;i<colArray.length;i++){ rowArray = colArray[i].split("\\*"); //在把列数组的元素转换为行数组,行数组每一个元素为单元格 for(int j = 0;j<rowArray.length;j++){ cellArray = rowArray[j].split("&"); //每个单元格有四个属性,分别为:内容,合并列数,合并行数,颜色 if(i<1){ //第一行需要进行水平单元格合并 int colSpan = Integer.parseInt(cellArray[1]); if(colSpan>1){ builder.insertCell(); builder.getCellFormat().clearFormatting(); //设置单元格的背景颜色或者字体颜色 builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setHorizontalMerge(CellMerge.FIRST); builder.getCellFormat().setVerticalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); builder.write(cellArray[0].equals("no")?"":cellArray[0]); for(int k = 0;k<colSpan-1;k++){ builder.insertCell(); builder.getCellFormat().clearFormatting(); builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS); builder.getCellFormat().setVerticalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); } }else{ builder.insertCell(); builder.getCellFormat().clearFormatting(); builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setHorizontalMerge(CellMerge.NONE); builder.getCellFormat().setVerticalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); builder.write(cellArray[0].equals("no")?"":cellArray[0]); } }else{ //后面的单元格需要进行垂直方向的合并 int rowSpan = Integer.parseInt(cellArray[2]); if(rowSpan>1){ rowSpanMap.put(j, rowSpan+i); builder.insertCell(); builder.getCellFormat().clearFormatting(); builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setVerticalMerge(CellMerge.FIRST); builder.getCellFormat().setHorizontalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); builder.write(cellArray[0].equals("no")?"":cellArray[0]); }else{ int rowNumber = rowSpanMap.get(j)==null?0:rowSpanMap.get(j); if(i<rowNumber){ builder.insertCell(); builder.getCellFormat().clearFormatting(); builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS); builder.getCellFormat().setHorizontalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); }else{ builder.insertCell(); builder.getCellFormat().clearFormatting(); builder.getFont().clearFormatting(); if("red".equals(cellArray[3])){ //样式如果是red,则修改单元格的字体为red builder.getFont().setColor(Color.RED); }else if(cellArray[3].startsWith("#")){ //如果以#开始,说明是bgColor单元格的背景色,设置单元格的背景色为对应颜色 builder.getCellFormat().getShading().setBackgroundPatternColor(Color.decode(cellArray[3])); }else{ builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE); } builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER); //垂直居中对齐 builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER); //水平居中对齐 builder.getCellFormat().getBorders().setLineStyle(LineStyle.SINGLE); builder.getCellFormat().setVerticalMerge(CellMerge.NONE); builder.getCellFormat().setHorizontalMerge(CellMerge.NONE); builder.getFont().setSize(fontSize); builder.write(cellArray[0].equals("no")?"":cellArray[0]); } } } } builder.endRow(); } builder.endTable(); builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE); try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); document.save(outputStream, SaveFormat.DOCX); documentOperateService.downLoadBrowser(request, response, "表格名称", outputStream); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } }
导出浏览器提示,可选择目录下载
public void downLoadBrowser(HttpServletRequest request, HttpServletResponse response, String fileName, OutputStream outputStream){ ByteArrayOutputStream byteArrayOutputStream = null; OutputStream outputStreamDownload = null; try { response.reset(); response.resetBuffer(); if (request.getHeader("user-agent").toLowerCase().contains("msie")||request.getHeader("user-agent").toLowerCase().contains("like gecko") ) { response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("GB2312"), "ISO8859-1" ) +".docx"+ "\""); }else{ response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("utf-8"), "ISO8859-1" ) +".docx"+ "\""); } response.setContentType("application/octet-stream"); response.setContentType("text/html;charset=UTF-8"); byteArrayOutputStream = (ByteArrayOutputStream) outputStream; byte[] date = byteArrayOutputStream.toByteArray(); outputStreamDownload = response.getOutputStream(); outputStreamDownload.write(date); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(byteArrayOutputStream != null){ byteArrayOutputStream.close(); } if(outputStreamDownload != null){ outputStreamDownload.close(); } } catch (IOException e) { e.printStackTrace(); } } }
阅读全文
0 0
- aspose导出表格到word
- aspose导出word
- Aspose.Words把DataTable 中的数据导出到word中
- Aspose.Words导出带图片人员信息到Word中
- Aspose Word内循环表格
- Aspose.Words导出主从表格
- 导出到word文档--带有表格
- js导出表格数据到word、excel
- 导出表格数据到word文档
- Aspose word导出word/pdf文件
- 根据word模板导出数据(Aspose.Words)
- 利用Aspose.Words按模板导出Word
- Aspose word导出照片代码实现
- 导出word带表格
- POI 导出 Word 表格
- 把整个网页的表格导出到word
- JavaScript Web页面表格导出到Word、Excel
- js导出表格到word及excel(ie only)
- linux(三)之linux常用命令二
- AOP概念
- BZOJ3507通配符匹配(DP + Hash)
- javaScript—tab切换
- java编程加载窗口,画图
- aspose导出表格到word
- Yarn vs npm:你需要知道的一切
- 计蒜客 机器人的相遇问题(扩展欧几里得模板题)
- ajaxform插件使用时报错ajaxSubmit() is not a function
- CTFd环境安装
- 中国剩余定理
- 在android studio 中添加插件
- 基于JMS的ActiveMQ搭建与实现
- Java平台AOP技术概览