package ; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.*; import org.apache.struts2.ServletActionContext; import java.io.IOException; import java.io.OutputStream; import java.util.List; /** * excel 导出工具 * @author * */ public class ClassifyExcelModel { /** * todo * @param list xx * @param response xx */ public void export(List list, HttpServletResponse response) { try { HSSFWorkbook workbook = exportExcel(list); if (workbook != null) { //this.printExcel(workbook, response, java.net.URLEncoder.encode("我的客户.xls", "UTF-8")); this.printExcel(workbook, response, "分类客户模板.xls"); } } catch (Exception e) { e.printStackTrace(); } } /** * to do * @param list xx * @return xx * @throws Exception e */ public HSSFWorkbook exportExcel(List list) throws Exception { HSSFWorkbook workbook = null; try { // 创建工作簿实例 workbook = new HSSFWorkbook(); // 这里的数据即时你要从后台取得的数据 this.fileData(list, workbook, "模板", 0); } catch (Exception e) { e.printStackTrace(); } return workbook; } /** * todo * @param workbook xx * @param response xx * @param filename xx * @throws IOException xx */ private void printExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename) throws IOException { OutputStream out = response.getOutputStream(); try { response.reset(); response.resetBuffer(); response.setContentType("application/x-download"); String userAgent = ServletActionContext.getRequest().getHeader("User-Agent"); if (userAgent.indexOf("MSIE") != -1) { response.addHeader("Content-Disposition", "attachment;filename=" + new String( filename.getBytes("GB2312"), "ISO8859-1" )); } else if (userAgent.indexOf("Mozilla") != 1) { response.addHeader("Content-Disposition", "attachment;filename=" + new String( filename.getBytes("UTF-8"), "ISO8859-1" )); } //filename = new String(filename.getBytes("iso-8859-1"),""); //filename = new String(filename.getBytes("utf-8"),"iso-8859-1"); //filename = java.net.URLDecoder.decode(filename, "utf-8"); //response.setContentType("application/msexcel;charset=UTF-8"); //response.setHeader("Content-disposition", "attachment; filename=" + filename); workbook.write(out); } catch (IOException e) { e.printStackTrace(); } finally { out.flush(); out.close(); response.flushBuffer(); } } /** * sdf * @param dataList xx * @param workbook xx * @param sheetName xx * @param count xx */ private void fileData(List dataList, HSSFWorkbook workbook, String sheetName, int count) { // 创建工作表实例 HSSFSheet sheet = workbook.createSheet(sheetName); workbook.setSheetName(count, sheetName); // 设置列宽 this.setSheetColumnWidth(sheet); // 获取样式 HSSFCellStyle style = this.createTitleStyle(workbook); HSSFCellStyle style1 = this.createTitleStyle1(workbook); // 创建第一行标题,标题名字的本地信息通过resources从资源文件中获取 HSSFRow row = sheet.createRow((short) 0);// 建立新行 //this.createCell(row, 0, style1, HSSFCell.CELL_TYPE_STRING, "公司ID"); this.createCell(row, 0, style1, HSSFCell.CELL_TYPE_STRING, "客户名称"); this.createCell(row, 1, style1, HSSFCell.CELL_TYPE_STRING,"隶属分类"); this.createCell(row, 2, style1, HSSFCell.CELL_TYPE_STRING,"城市"); this.createCell(row, 3, style1, HSSFCell.CELL_TYPE_STRING,"数据状态"); this.createCell(row, 4, style1, HSSFCell.CELL_TYPE_STRING,"数据来源"); this.createCell(row, 5, style1, HSSFCell.CELL_TYPE_STRING,"创建时间"); //自定义属性 for (int i = 0; i < dataList.size(); i++){ ClassifyHoldProperty cp = (ClassifyHoldProperty)dataList.get(i); Propertymate pt = cp.getPropertymate(); if (pt != null) { String propName = cp.getPropertymate().getPropertyName(); this.createCell(row, (6+i), style1, HSSFCell.CELL_TYPE_STRING, propName); } } } /** * to do * @param sheet xx */ private void setSheetColumnWidth(HSSFSheet sheet) { // 根据你数据里面的记录有多少列,就设置多少列 sheet.setColumnWidth((short) 0, (short) 5000); sheet.setColumnWidth((short) 1, (short) 8000); sheet.setColumnWidth((short) 2, (short) 5000); sheet.setColumnWidth((short) 3, (short) 10000); sheet.setColumnWidth((short) 4, (short) 8000); } /** * to do * @param wb xx * @return xx */ //设置第一行标题的样式 private HSSFCellStyle createTitleStyle1(HSSFWorkbook wb) { HSSFFont boldFont = wb.createFont(); boldFont.setFontHeight((short) 240); HSSFCellStyle style = wb.createCellStyle(); style.setFont(boldFont); // style.setDataFormat(HSSFDataFormat.getBuiltinFormat("###,##0.00")); style.setDataFormat(HSSFDataFormat.getBuiltinFormat("G/通用格式")); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //设置字体居中 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); return style; } // 设置excel的title样式 /** * xx * @param wb xx * @return xx */ private HSSFCellStyle createTitleStyle(HSSFWorkbook wb) { HSSFFont boldFont = wb.createFont(); boldFont.setFontHeight((short) 240); HSSFCellStyle style = wb.createCellStyle(); style.setFont(boldFont); style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0")); style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); style.setAlignment(HSSFCellStyle.ALIGN_LEFT); return style; } /** * xx * @param row xx * @param column xx * @param style xx * @param cellType xx * @param value xx */ // 创建Excel单元格 private void createCell(HSSFRow row, int column, HSSFCellStyle style, int cellType, Object value) { HSSFCell cell = row.createCell((short) column); cell.setCellType(HSSFCell.ENCODING_UTF_16); if (style != null) { cell.setCellStyle(style); } switch (cellType) { case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_STRING: if (value != null) { cell.setCellValue(new HSSFRichTextString(value.toString())); } else { cell.setCellValue(new HSSFRichTextString("")); } break; case HSSFCell.CELL_TYPE_NUMERIC: cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); // DecimalFormat format = new DecimalFormat("###,##0.00"); // cell.setCellValue(Float.parseFloat(value.toString())); cell.setCellValue(Double.parseDouble(value.toString())); break; default: break; } } }
window.open('/xxAction?method=exportExcel&index='+uuid);
HttpServletResponse response = ServletActionContext.getResponse(); ExportExcel exportExcel = new ExportExcel(); exportExcel.export(list,response);
相关推荐
8. **转换为Excel**: 为了将PDF转换为Excel,可以使用第三方库如Apache POI或Apache PDFBox。这些库提供API将PDF解析为可操作的表格数据。 9. **创建工具类**: 将以上代码封装成一个工具类,接受必要的参数(如数据...
2. **读取Excel**:使用第三方库如EPPlus或NPOI来读取Excel文件,获取工作表数据。这些库提供了方便的API,可以轻松访问单元格内容。 3. **反射和特性解析**:遍历Model类,通过反射获取所有属性及其特性。解析特性...
- Java通过第三方库如Apache POI或jxl与Excel文件进行交互。在这个案例中,我们使用的是jxl库,这是一个轻量级的库,适用于Java平台,支持读取和写入Excel 97-2003格式的文件。 2. **jxl库介绍**: - jxl库提供了...
excel的操作,在开发中是经常遇到的问题,也是程序员比较费心思的开发问题,虽然现在有jxl,poi等第三方开发组件的支持,对excel的操作变的简单了很多,但是大多数都不通用,在此提供一个excel导出工具,内含源码,...
在ASP.NET框架下,使用内置的功能来实现复杂的数据导出可能较为繁琐,这时第三方控件就显得尤为重要。"myxls"是一个这样的控件,它专门用于帮助开发者方便地将数据导出到Excel中。 myxls控件是一个高效且功能强大的...
总结来说,Java导出Excel涉及的关键技术点包括对Excel文件格式的理解,使用Java标准API或第三方库(如Apache POI)操作Excel对象,以及数据处理和格式化。通过阅读提供的博客和源代码,开发者可以学习如何在不依赖...
- 创建Excel工作簿:使用第三方库如EPPlus,它可以方便地操作Excel文件。 - 将DataTable写入工作簿:通过遍历DataTable的行和列,将数据写入Excel工作簿的特定单元格。 - 保存和下载:将工作簿保存为临时文件,...
而是使用第三方库或者API来创建Excel文件。这通常涉及到像NPOI这样的开源库,它允许开发者在没有安装Office的情况下创建、修改和读取Excel文件。 4. **NPOI库**:NPOI是.NET平台上的一个开源项目,用于处理...
控件名称"ExcelExport3.5"可能指的是一个特定版本的第三方库,它提供了对Delphi7的支持。Delphi7是一款历史悠久但仍然活跃的集成开发环境(IDE),许多企业仍基于它构建应用程序。因此,这个控件对于那些需要在老...
"lib"是Java项目中存放第三方库的标准位置。确保你已经下载了Apache POI的相关依赖,包括poi、poi-ooxml、poi-ooxml-schemas等,这些都会包含在你的"lib"目录下。 下面是一个简单的使用Apache POI创建Excel文件的...
首先,PHP本身并不支持直接生成Excel文件,但可以通过一些第三方库来实现。其中最常用的是PHPExcel库,它提供了丰富的API接口,可以方便地创建、读取和修改Excel文件。另一个流行的选项是SimpleXLSX,它更适合简单的...
虽然Apache POI本身并不直接支持Excel到PDF的转换,但Easy POI通过引入第三方库如 Flying Saucer 或 Apache FOP 实现了这一功能。首先,你需要将Excel文件读取为一个工作簿对象,然后利用PDF生成器,将每个工作表...
第二种方法是使用第三方库,如NPOI。NPOI是一个开源的.NET库,用于读写Microsoft Office格式的文件,包括Excel。这种方法不需要安装Office,因此在服务器环境或者不支持COM交互的场景下更有优势。使用NPOI,你可以...
在C#中处理Excel文件,通常我们会利用.NET Framework或.NET Core提供的类库,如`System.IO.Packaging`(用于Open XML格式)或者第三方库如NPOI、EPPlus等。这些库允许开发者创建、读取、修改Excel工作簿,并执行复杂...
Excel提供了COM接口,使得第三方程序可以控制Excel对象,如工作簿、工作表和单元格,从而实现读写功能。 至于具体的代码实现,压缩包中的“Excel读写工具类”文件很可能是源代码或者头文件,包含了工具类的定义和...
- 如果需要处理大量数据或进行复杂的数据操作,建议考虑使用其他更为高效的方式,如EPPlus等第三方库。 - 为了提高安全性,应避免在生产环境中直接使用COM组件操作Excel,可以通过API或其他方式间接完成数据导出任务...
总结来说,这个主题涵盖了Java编程、注解的使用、对象与数据结构的映射,以及使用第三方库处理Excel文件的技巧。对于Java开发者尤其是需要处理数据导出需求的人来说,这是一个非常实用的技术点。
在.NET中,可以使用第三方库如EPPlus,它允许我们创建Excel工作簿并填充数据。首先,需要安装EPPlus库(例如,通过NuGet包管理器),然后创建一个ExcelPackage对象,并将数据写入工作表: ```csharp using ...
这两个jar文件包含了帆软报表引擎的核心组件和第三方依赖,它们是实现报表格式转换的关键。在实际操作中,我们需要将这些库加入到项目的类路径中,确保系统能够正确识别并执行报表导出的指令。 datasource.xml文件...