/**
*
* 使用poi方式生成excel报表 <br>
* 〈功能详细描述〉
*
* @param exportList:数据列表
* @param columnNames:字段的列明数组(对应的就是Map中的Key值)
* @param templateName:Excel模板名称
* @param fileName:生成的Excel文件名
* @param index:使用第几个Sheet页
* @param insertLine:从Excel中的第几行开始插入数据
* @param request
* @param response
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
public static void usePoiExportDatas(List<Map<String, Object>> exportList, String[] columnNames,
String templateName, String fileName, int index, int insertLine, HttpServletRequest request,
HttpServletResponse response) {
// 获取Excel模板文件路径
String excelModelPath = getExcelModelPath(templateName, request);
OutputStream os = null;
InputStream is = null;
try {
is = new BufferedInputStream(new FileInputStream(excelModelPath));
Workbook work = new HSSFWorkbook(is);
// 得到excel的第index个sheet页
Sheet sheet = work.getSheetAt(index);
// 遍历数据集列表,每条记录对应Excel文件中的一行
for (int i = 0; i < exportList.size(); i++) {
Map<String, Object> dataMap = exportList.get(i);
// 生成Excel中的行
Row row = sheet.createRow(i + insertLine - 1);
for (int j = 0; j < columnNames.length; j++) {
// 生成Excel中的列
Cell cell = row.createCell(j);
// 为该列赋值
cell.setCellValue(MapUtils.getString(dataMap, columnNames[j], ""));
}
}
response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("utf-8"), "ISO8859-1"));
os = response.getOutputStream();
work.write(os);
} catch (IOException e) {
logger.error("IO异常");
} finally {
IOUtils.closeQuietly(os);
IOUtils.closeQuietly(is);
}
}
private static String getExcelModelPath(String templateName, HttpServletRequest request) {
StringBuilder filePath = new StringBuilder(50);
filePath.append(request.getSession().getServletContext().getRealPath("/")).append(File.separator)
.append("report").append(File.separator).append("template").append(File.separator);
// Excel模板路径
String modelFilePath = filePath.toString() + templateName;
return modelFilePath;
}
分享到:
相关推荐
Excel 导入、导出、模板生成公共模块整理是指使用 Microsoft.Office.Interop.Excel.dll 库来实现 Excel 文件的导入、导出和模板生成操作。该模块提供了一个单例类 ExcelOperate,用于管理 Excel 文件的操作。 ...
不太推荐需要在代码内部编写PDF格式,如果要使用,建议写个基类,将同一版本 或者同一类型的公共方法写入,差异化的抽象,一个模板一个子类,子类使用@Component命名,使用反射的方式获取模板子类。 2. ...
使用C#代码生成Excel文件 - **准备工作** - 定义必要的命名空间:`System`、`System.Data`、`Excel`(来自Excel组件)、`System.IO`。 - 创建一个类`OutputExcel`用于处理Excel文件的生成工作。 - **类结构** ...
3. **生成模板**:脚本基于属性名生成JavaBean模板,包括属性声明、getter和setter方法。 4. **导出为TXT**:生成的JavaBean代码保存为TXT文件,用户可以将其复制到Java项目中,适当调整后编译使用。 这个工具的...
5. 调用接口:为了使用这个公共组件,开发者需要调用其提供的API或方法。这些接口可能包括启动导出过程、指定导出数据、定义样式等。调用方式取决于具体的组件设计,可能是同步的(等待导出完成返回结果)或异步的...
Excel模板通常设计得直观易用,且具有一定的功能性,如公式计算、数据验证和图表生成等。 关于“学生体温测量登记表.xlsx”这个文件,我们可以预期以下内容: 1. **表头**:模板的第一行可能包括学生的个人信息,...
使用这样的模板,市公共车船管理处能够定期生成财务报告,以满足内部管理需求和外部监管要求。同时,通过Excel的数据分析功能,可以进行趋势分析、成本控制和预算规划,为决策者提供有力的支持。
1. 创建MFC DLL项目:在Visual Studio中选择“新建项目”,然后选择MFC DLL模板,这将生成一个包含MFC支持的DLL工程。 2. 实现Excel功能:在DLL项目中,开发者会创建一个或多个类,这些类可能包含对Excel COM接口...
10. **宏(Macros)**:虽然不是所有Excel模板都会包含宏,但某些复杂的模板可能会有宏来自动化数据处理或报告生成。 使用这样的Excel模板,用户可以有效地组织和分析体温监测数据,同时减少了手动记录和计算的工作...
为了使非专业统计背景的用户也能轻松地应用这种预测方法,"Excel模板马尔可夫预测法.zip"的推出无疑为这一需求提供了便利。 马尔可夫预测法源自俄罗斯数学家安德烈·马尔可夫的工作,是一种基于概率的预测技术。它...
在"ABAP2XLSX+封装EXCEL 打印的公用类"的场景中,我们可能涉及到的是一个专门设计的公共类(ZCL_COMMON),它利用了ABAP2XLSX的功能,并进一步封装了生成和打印Excel文件的逻辑,以便在不同的业务场景下重复使用。...
总结来说,利用Excel模板制作考场桌面标签是一种高效且灵活的方法。它不仅可以帮助我们快速生成和打印标签,还可以根据需要进行个性化设计。通过熟练掌握Excel的相关功能,我们可以更好地组织和管理考试流程,确保...
best2018的gravatar头像 best20182022-10-17 14:55:20原证springboot整合easyexcel实现excel文件上传解析,下载导出简单实例 ...用于上传解析的Excel模板文件位于项目根目录file文件夹下,名称为Test.xlsx
2. 在项目中编写导出到Word和Excel的公共类和方法。 3. 编译项目,生成DLL文件。 4. 在其他项目中引用这个DLL,可以直接调用其中的方法。 为了使这些公用方法易于使用,可以考虑设计一个统一的接口,比如`...
这个库主要适用于那些需要在Web应用中生成Excel报告或导出数据的场景,比如数据分析、报表生成等。EasyUIPoI的名字可能来源于流行的前端框架EasyUI,但其核心功能是后端的Excel处理。 Apache POI是Apache软件基金会...
在描述中提到的“Excel模板事业单位收入支出表.zip”,进一步确认了这是一个使用Excel软件创建的模板,可能包含多个工作表,分别用于不同的财务记录和报告,例如月度、季度或年度收支汇总,或者按项目分类的收支明细...
1. 该工具的目的在于支持excel表格的定制化开发,提供了基本默认样式类、以及公共模板类,加速不同样式表格的生成,很适合表格复杂多变的场景; 2. 数据、样式、excel模板分离,可分别配置,可任意组合复用; 3. ...
会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端controller和service,提供xml模板和Excel模板,由于项目导入地方较多,编写的是公共代码,供多处调用...
以下是一份详细的知识点解析,涵盖了VB生成标准DLL的方法,以及如何使用和管理这些DLL。 1. **DLL(动态链接库)**:DLL是一种共享库,它包含可由多个程序同时使用的代码和数据。这样可以减少内存占用,提高系统...
在Excel中创建和使用体温登记表是数据管理和追踪的重要手段,尤其在公共卫生事件期间,如COVID-19等。这份"Excel模板各类体温登记表.zip"包含了一个名为"各类体温登记表.xls"的文件,旨在提供多种场景下的体温记录...