有关这方面知识和用法网上一搜一大堆。
啥也不多说,直接上代码:
自己运行通过。
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\"" + "excel(excelName.xls" + "\"");
HSSFSheet sheet = wb.createSheet("sheetName");
int cols = 40; //因为科室不定,so长度不定,暂设为40
HSSFCellStyle sheetStyle = wb.createCellStyle(); // Sheet样式
//设置边线
sheetStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
sheetStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
sheetStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
sheetStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
// 设置列的样式
for (int i = 0; i < cols; i++) {
sheet.setDefaultColumnStyle((short) i, sheetStyle);
//设置列宽
if(i < 2){
sheet.setColumnWidth(i, 2000);
}else if(i == 2){
sheet.setColumnWidth(i, 6000);
}else{
sheet.setColumnWidth(i, 12000);
}
sheet.setDefaultRowHeight((short)500);
}
int index = 1;
int count = 0;
int deptIndex = 0;
//循环
for(ZyyBaseVO base : baseList){
int i = 0;
HSSFRow row = sheet.createRow(deptIndex + count); //科室列表createRow包括人员数和科室数
row.createCell(i++).setCellValue("序号");
row.createCell(i++).setCellValue("基地");
row.createCell(i++).setCellValue("姓名");
//基地下科室
for(ZyyDeptVO deptVO : base.getDeptList()){
row.createCell(i++).setCellValue(deptVO.getDeptName());
}
//基地下人员
for(ZyyUserExtendVO user : base.getUserList()){
HSSFRow r = sheet.createRow(index + count); //人员数
int j = 0;
r.createCell(j++).setCellValue(index);
StringBuffer userInfo = new StringBuffer();
userInfo.append(user.getRealName());
userInfo.append("(");
userInfo.append(user.getUserYear());
userInfo.append("级/");
userInfo.append(user.getUserDeptName());
userInfo.append(")");
r.createCell(j++).setCellValue(base.getAliasName());
r.createCell(j++).setCellValue(userInfo.toString());
for(ZyyDeptVO dept : base.getDeptList()){
List<ZyyCycleTableResiCycleVO> deptList = user.getResiCycleMap().get(dept.getDeptName());
String dateString = getCycleDate4export(deptList);
r.createCell(j++).setCellValue(dateString);
}
index ++;
deptIndex ++;
}
count ++;
}
}
//开始导出
try{
ServletOutputStream stream=response.getOutputStream();
wb.write(stream);
}catch(Exception e){
}
分享到:
相关推荐
4. **性能优化**:HSSFWorkbook使用内存映射技术,这意味着整个Excel文件会加载到内存中。虽然这提高了读写速度,但也可能导致内存消耗过大。因此,对于处理大型文件,需要谨慎管理内存,可能需要考虑使用SXSSF...
本文将详细解析如何使用 HSSFWorkBook 来创建和格式化 Excel 文件,并通过提供的代码片段进行深入分析。 #### 二、创建 Excel 文件与 Sheet 在 Java 中,首先需要引入 Apache POI 库。创建 Excel 文件的基本步骤是...
在这个场景中,"HSSFWorkbook模版使用的jar包"指的是Apache POI库中的HSSF部分,它是一个Java库,用于创建、修改和读取微软Excel 97-2007格式的工作簿。 首先,我们需要理解HSSFWorkbook的核心概念。HSSFWorkbook是...
本篇文章将深入探讨HSSFWorkbook的使用方法、优势以及相关的知识体系。 Apache POI是一个开源项目,它提供了一套完整的API,使得开发者可以使用Java读写Microsoft Office格式的文件,包括Word(HWPF)、Excel(HSSF...
使用HSSFWorkbook时,首先需要将其引用添加到项目中。在“添加引用”对话框中选择dll文件,即可引入该库。之后,可以使用以下代码片段来创建一个新的Excel工作簿: ```csharp using NPOI.HSSF.UserModel; using ...
6. **读取Excel文件**:同样,`HSSFWorkbook`也支持从输入流中读取Excel文件,使用`HSSFWorkbook`的静态方法`HSSFWorkbook POIFSFileSystem.createDocumentInputStream(InputStream)`即可。 7. **内存优化**:由于`...
标题 "HSSFWorkbook 创建 excel 文件(导出数据)" 指的是使用 Apache POI 库中的 HSSFWorkbook 类来创建和导出 Excel 文件的过程。Apache POI 是一个流行的 Java 库,它允许程序员读写 Microsoft Office 格式的文件...
NPOI提供了对Microsoft Office文件格式的支持,包括Excel的HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种不同模式的接口,用于读写Excel文件。下面我们将详细探讨这三种方式,并提供相关的示例代码。 1. **...
HSSFWorkbook使用内存映射文件模型,对大型数据集可能造成内存压力,但处理速度较快。 2. XSSFWorkbook:用于创建和修改OpenXML格式的Excel文件(.xlsx),这是Excel 2007及更高版本使用的格式。相比HSSFWorkbook,...
这里我们关注的是使用JFinal框架结合Apache POI库中的HSSFWorkbook类来处理Excel文件,实现数据的导入并将其内容解析存入数据库。下面我们将详细探讨这个过程。 首先,`JFinal`是一个基于Java的轻量级Web开发框架,...
HSSFWorkbook,XSSFWorkbook所需全部jar,包括poi-3.9-20121203.jar ,poi-ooxml-3.9.jar,poi-ooxml-schemas-4.0.0.jar,dom4j-1.6.1.jar ,xmlbeans-2.6.0.jar
`HSSFWorkbook`使用HSSF(Horrible Spreadsheet Format)模型,这是Apache POI为旧版Excel文件格式设计的。 另一方面,`XSSFWorkbook`则是用来处理新版Excel文件(.xlsx格式,2007及以上版本)的。它基于SXSSF...
2. **使用Apache POI加载Excel**:然后,使用POI的HSSFWorkbook或XSSFWorkbook类打开Excel文件。根据你的Excel文件类型,选择对应的API。例如,如果你正在处理的是.xlsx文件,那么应该使用XSSFWorkbook。 3. **插入...
用HSSFWorkbook做的关于excel表格的导出,里面有详细的表格的格式设置。
HSSFWorkbook XSSFWorkbook poi-ooxml-3.10.1-20140818.jar
在本文中,我们将深入探讨如何使用POI库中的HSSF和XSSF组件来读取和写入Excel文件,这两种组件分别用于处理.xls(97-2003版Excel格式)和.xlsx(2007及更高版本的Office Open XML格式)。 首先,让我们了解HSSF...
标题中的“poi解析Excel”指的是使用Apache POI库来读取、写入和操作Microsoft Excel文件。Apache POI是Java领域的一个开源项目,它提供了API,使得开发者能够在Java应用程序中处理Microsoft Office格式的文档,包括...
这些方法会使用NPOI的API,如`HSSFWorkbook`和`ISheet`等。 ```csharp using NPOI.HSSF.UserModel; // for .xls files using NPOI.XSSF.UserModel; // for .xlsx files public void WriteToExcel(string filePath,...
本篇文章将深入探讨如何使用Windows平台上的ActiveXComponent技术来实现从Excel到PDF的转换。 首先,我们需要理解什么是ActiveXComponent。ActiveX是微软提出的一种技术,它允许开发人员创建可重用的组件,这些组件...