`
lemo
  • 浏览: 91627 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

POI报表

阅读更多
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报表+详细文档”的压缩包中,我们很可能会找到关于如何使用POI库来创建和操作Excel报表的详细教程和实例代码。 在Excel报表的创建中,Apache POI提供了一个强大的API,允许开发者用Java编程语言来处理...

    POI报表导出excel

    在这个“POI报表导出excel”的案例中,我们将深入探讨如何使用POI 3.6版本来实现报表的导出,包括设置Excel样式、合并单元格以及处理多表头的合并。 首先,我们需要了解Apache POI的核心组件:HSSFWorkbook(用于...

    POI报表Excel

    POI报表Excel

    POI报表技术

    【标题】:POI报表技术 在Java开发中,POI报表技术主要指的是Apache POI库,这是一个用于读写Microsoft Office格式文件的开源Java库。它允许开发者在Java应用程序中创建、修改和显示Excel、Word和PowerPoint文档。...

    POI报表Word导出

    POI报表Word导出

    poi报表导入导出视频

    【标题】"poi报表导入导出视频"涉及的是Java编程中的Apache POI库,这个库主要用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在报表领域,POI库常常被用来进行数据的导入和导出操作,极大地提高...

    POI报表.rar

    标题中的"POI报表.rar"表明这是一个与Apache POI库相关的压缩文件,通常用于处理Microsoft Office格式,特别是Excel。在企业环境中,特别是电信系统和银行系统,数据的管理和报告是至关重要的,而Excel由于其强大的...

    Apache之PoI 报表导出

    在"Apache之PoI 报表导出"这个主题中,我们将深入探讨如何利用Apache POI库将数据库中的数据高效地导出到Excel报表中。 1. **Apache POI简介** Apache POI是一个开源项目,它提供了API来创建、修改和显示Microsoft...

    Java-POI报表整合项目案例

    Java-POI报表整合项目案例是Java开发中的一个重要实践,主要涉及到使用Apache POI库来创建、读取和编辑Microsoft Office格式的文件,尤其是Excel电子表格。在企业级应用中,这种技术常用于数据导入导出、自动化报表...

    POI报表,poi案例,例子,EXAMPLE,说明文档,帮助文档。

    以下是对"POI报表,poi案例,例子,EXAMPLE,说明文档,帮助文档"的详细说明: 1. **POI报表**: 在Java开发中,如果你需要生成或处理Excel报表,Apache POI提供了一套强大的API。你可以创建复杂的电子表格,包括...

    dwr结合jQuery实现Ajax技术 ,Oracle作为后台数据库,jxl + poi报表

    “jxl + poi报表”涉及的是Java中处理Excel文件的两个库。jxl是一个开源库,用于读取和写入Microsoft Excel文件。它提供了方便的API,让开发者能够创建、修改或读取Excel工作簿、工作表和单元格数据。另一方面,...

    poi报表

    在本教程中,我们将深入探讨如何使用POI库生成Excel报表。 **1. POI简介** POI是Apache软件基金会Jakarta项目的一部分,提供了一个纯Java的解决方案来处理Microsoft Excel(XLS)文件。HSSF(Horrible Spreadsheet ...

    poi报表导入导出.zip

    ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat服务器 3.web页面具体路径:http://localhost:80/poi 4.点击Read excel 2003 or 2007,可以读取2003或2007版Excel 5....

    poi报表资料.zip

    用poi操作Excel作报表效率很高,本资源包含以下内容: 1,POI的Jar包,2.5和3.9版本的; 2,Excel文件输出的java源代码; 3,导出设置的帮助文档和关键代码和Java示例代码; 4,示例教程文档等等 5,报表样式

    poi生成excel报表合并列

    在这个场景中,我们关注的是如何使用POI来生成具有合并列的Excel报表。生成这样的报表时,通常是为了呈现层次化的数据,例如组织结构、产品分类或者地区分层等。下面将详细介绍如何利用Apache POI实现这一功能。 ...

    POI技术简单应用开发报表简单使用

    **POI技术简单应用开发报表简单使用** Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java编程环境中,它为开发者提供了强大的API,允许他们读取、写入和...

    apache poi报表导入导出实例 基于服务器下载报表。导入项目既可以运行。

    导入源码既可运行,注释详细,一看就懂。...如果代码报错,请自行将tomcat部署进去,可以进行下载报表测试。简单易用,可以收藏。实例excel文件在src目录下的excle目录下,请测试的时候修改相关路径。

    poi制作报表

    【poi制作报表】是关于Java开发中利用Apache POI库创建和操作Microsoft Excel报表的技术介绍。Apache POI是一个开源项目,主要目标是处理OLE2对象,尤其是与Microsoft Office相关的文件格式,如Excel(HSSF接口)和...

    POI导出报表

    【POI导出报表】是Java开发中一个常见的任务,主要涉及如何利用Apache POI库来生成和导出Word、Excel以及PDF格式的报表。Apache POI是一个流行的开源项目,它为Microsoft Office文档(如Word、Excel)提供读写功能,...

    Apache之 excel的POI报表导出

    在本文中,我们将深入探讨如何利用Apache POI实现Excel报表的导出功能,以及如何在Web应用程序中为用户提供下载选项。 首先,我们需要在项目中引入Apache POI的依赖。通常,你可以通过Maven或Gradle来管理这些依赖...

Global site tag (gtag.js) - Google Analytics