import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.stereotype.Controller;
import com.om.check.model.MonthCheck;
import com.om.check.service.MonthCheckService;
@Controller("/printmanager")
public class PrintDispatchAction extends DispatchAction {
@Resource(name = "monthCheckService")
private MonthCheckService monthCheckService;
// 考核打印
public ActionForward printCheck(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setCharacterEncoding("utf-8");
String year = "";
String month = "";
String yearStr = request.getParameter("year");
if(!"".equals(yearStr))
{
year = yearStr;
}
String monthStr = request.getParameter("month");
if(!"".equals(monthStr))
{
month = monthStr;
}
//UUID uuid = UUID.randomUUID();
String fileName ="/check/"+year+"年"+month+"月"+"任务月度考核";
response.setHeader("Content-Disposition","attachment;filename="+fileName+".xls");//指定下载的文件名
response.setContentType("application/vnd.ms-excel");
String path = request.getSession().getServletContext().getRealPath(fileName+".xls");
System.out.println(path);
createWorkbook(path, year, month,response.getOutputStream());
return null;
}
public void createWorkbook(String fileName, String year, String month,OutputStream output) {
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中创建一个名位FIRST的工作表
HSSFSheet sheet = workbook.createSheet("assessment");
// 设置表格的样式
HSSFCellStyle style0 = workbook.createCellStyle();
// 在索引0的位置创建行,对应着第一行
HSSFRow row = sheet.createRow((short) 0);
HSSFCell cell = row.createCell((short) 0);
HSSFFont font0 = workbook.createFont();
// 写单元格的标题
// 指定列宽度
sheet.setColumnWidth((short) 0, (short) (15 * 256));
sheet.setColumnWidth((short) 1, (short) (20 * 256));
sheet.setColumnWidth((short) 2, (short) (20 * 256));
sheet.setColumnWidth((short) 3, (short) (20 * 256));
font0.setFontHeightInPoints((short) 10);
font0.setFontName("宋体");
// font0.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style0.setFont(font0);
style0.setAlignment(HSSFCellStyle.ALIGN_LEFT);
style0.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style0.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style0.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style0.setBorderRight(HSSFCellStyle.BORDER_THIN);
style0.setBorderTop(HSSFCellStyle.BORDER_THIN);
cell.setCellStyle(style0);
cell.setCellValue("被考核人");
cell = row.createCell((short) 1);
cell.setCellStyle(style0);
cell.setCellValue("本月考核的任务数量");
cell = row.createCell((short) 2);
cell.setCellStyle(style0);
cell.setCellValue("月度考核总分数");
cell = row.createCell((short) 3);
cell.setCellStyle(style0);
cell.setCellValue("考核年月");
// TODO,从数据库中读取数据
List<MonthCheck> list = monthCheckService.findChecksByYearAndMonth(
year, month);
String date = year + "年" + month + "月";
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
MonthCheck monthCheck = (MonthCheck) list.get(i);
row = sheet.createRow((short) i + 1);
HSSFCell[] data = new HSSFCell[4];
for (short j = 0; j < 4; j++) {
// cell.setCellStyle(style0);
data[j] = row.createCell(j);
data[j].setCellStyle(style0);
}
data[0].setCellValue(monthCheck.getCheckMan());
data[1].setCellValue(monthCheck.getMissionNumer());
data[2].setCellValue(monthCheck.getMonthScores());
data[3].setCellValue(date);
}
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream(fileName);
workbook.write(output);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
output.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
在这个“poi报表+详细文档”的压缩包中,我们很可能会找到关于如何使用POI库来创建和操作Excel报表的详细教程和实例代码。 在Excel报表的创建中,Apache POI提供了一个强大的API,允许开发者用Java编程语言来处理...
在这个“POI报表导出excel”的案例中,我们将深入探讨如何使用POI 3.6版本来实现报表的导出,包括设置Excel样式、合并单元格以及处理多表头的合并。 首先,我们需要了解Apache POI的核心组件:HSSFWorkbook(用于...
POI报表Excel
【标题】:POI报表技术 在Java开发中,POI报表技术主要指的是Apache POI库,这是一个用于读写Microsoft Office格式文件的开源Java库。它允许开发者在Java应用程序中创建、修改和显示Excel、Word和PowerPoint文档。...
POI报表Word导出
【标题】"poi报表导入导出视频"涉及的是Java编程中的Apache POI库,这个库主要用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在报表领域,POI库常常被用来进行数据的导入和导出操作,极大地提高...
标题中的"POI报表.rar"表明这是一个与Apache POI库相关的压缩文件,通常用于处理Microsoft Office格式,特别是Excel。在企业环境中,特别是电信系统和银行系统,数据的管理和报告是至关重要的,而Excel由于其强大的...
在"Apache之PoI 报表导出"这个主题中,我们将深入探讨如何利用Apache POI库将数据库中的数据高效地导出到Excel报表中。 1. **Apache POI简介** Apache POI是一个开源项目,它提供了API来创建、修改和显示Microsoft...
Java-POI报表整合项目案例是Java开发中的一个重要实践,主要涉及到使用Apache POI库来创建、读取和编辑Microsoft Office格式的文件,尤其是Excel电子表格。在企业级应用中,这种技术常用于数据导入导出、自动化报表...
以下是对"POI报表,poi案例,例子,EXAMPLE,说明文档,帮助文档"的详细说明: 1. **POI报表**: 在Java开发中,如果你需要生成或处理Excel报表,Apache POI提供了一套强大的API。你可以创建复杂的电子表格,包括...
“jxl + poi报表”涉及的是Java中处理Excel文件的两个库。jxl是一个开源库,用于读取和写入Microsoft Excel文件。它提供了方便的API,让开发者能够创建、修改或读取Excel工作簿、工作表和单元格数据。另一方面,...
在本教程中,我们将深入探讨如何使用POI库生成Excel报表。 **1. POI简介** POI是Apache软件基金会Jakarta项目的一部分,提供了一个纯Java的解决方案来处理Microsoft Excel(XLS)文件。HSSF(Horrible Spreadsheet ...
ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat服务器 3.web页面具体路径:http://localhost:80/poi 4.点击Read excel 2003 or 2007,可以读取2003或2007版Excel 5....
用poi操作Excel作报表效率很高,本资源包含以下内容: 1,POI的Jar包,2.5和3.9版本的; 2,Excel文件输出的java源代码; 3,导出设置的帮助文档和关键代码和Java示例代码; 4,示例教程文档等等 5,报表样式
在这个场景中,我们关注的是如何使用POI来生成具有合并列的Excel报表。生成这样的报表时,通常是为了呈现层次化的数据,例如组织结构、产品分类或者地区分层等。下面将详细介绍如何利用Apache POI实现这一功能。 ...
**POI技术简单应用开发报表简单使用** Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java编程环境中,它为开发者提供了强大的API,允许他们读取、写入和...
导入源码既可运行,注释详细,一看就懂。...如果代码报错,请自行将tomcat部署进去,可以进行下载报表测试。简单易用,可以收藏。实例excel文件在src目录下的excle目录下,请测试的时候修改相关路径。
【poi制作报表】是关于Java开发中利用Apache POI库创建和操作Microsoft Excel报表的技术介绍。Apache POI是一个开源项目,主要目标是处理OLE2对象,尤其是与Microsoft Office相关的文件格式,如Excel(HSSF接口)和...
【POI导出报表】是Java开发中一个常见的任务,主要涉及如何利用Apache POI库来生成和导出Word、Excel以及PDF格式的报表。Apache POI是一个流行的开源项目,它为Microsoft Office文档(如Word、Excel)提供读写功能,...
在本文中,我们将深入探讨如何利用Apache POI实现Excel报表的导出功能,以及如何在Web应用程序中为用户提供下载选项。 首先,我们需要在项目中引入Apache POI的依赖。通常,你可以通过Maven或Gradle来管理这些依赖...