项目中用到java 对excel表格,在网上看到该段代码,感觉比较齐全,收藏备用
public ActionResult excelPrint() { HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件 HSSFSheet sheet = workbook.createSheet();// 创建一个Excel的Sheet sheet.createFreezePane(1, 3);// 冻结 // 设置列宽 sheet.setColumnWidth(0, 1000); sheet.setColumnWidth(1, 3500); sheet.setColumnWidth(2, 3500); sheet.setColumnWidth(3, 6500); sheet.setColumnWidth(4, 6500); sheet.setColumnWidth(5, 6500); sheet.setColumnWidth(6, 6500); sheet.setColumnWidth(7, 2500); // Sheet样式 HSSFCellStyle sheetStyle = workbook.createCellStyle(); // 背景色的设定 sheetStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); // 前景色的设定 sheetStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); // 填充模式 sheetStyle.setFillPattern(HSSFCellStyle.FINE_DOTS); // 设置列的样式 for (int i = 0; i <= 14; i++) { sheet.setDefaultColumnStyle((short) i, sheetStyle); } // 设置字体 HSSFFont headfont = workbook.createFont(); headfont.setFontName("黑体"); headfont.setFontHeightInPoints((short) 22);// 字体大小 headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗 // 另一个样式 HSSFCellStyle headstyle = workbook.createCellStyle(); headstyle.setFont(headfont); headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中 headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中 headstyle.setLocked(true); headstyle.setWrapText(true);// 自动换行 // 另一个字体样式 HSSFFont columnHeadFont = workbook.createFont(); columnHeadFont.setFontName("宋体"); columnHeadFont.setFontHeightInPoints((short) 10); columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 列头的样式 HSSFCellStyle columnHeadStyle = workbook.createCellStyle(); columnHeadStyle.setFont(columnHeadFont); columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中 columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中 columnHeadStyle.setLocked(true); columnHeadStyle.setWrapText(true); columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框的颜色 columnHeadStyle.setBorderLeft((short) 1);// 边框的大小 columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);// 右边框的颜色 columnHeadStyle.setBorderRight((short) 1);// 边框的大小 columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体 columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色 // 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式) columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index); HSSFFont font = workbook.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 10); // 普通单元格样式 HSSFCellStyle style = workbook.createCellStyle(); style.setFont(font); style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 左右居中 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 上下居中 style.setWrapText(true); style.setLeftBorderColor(HSSFColor.BLACK.index); style.setBorderLeft((short) 1); style.setRightBorderColor(HSSFColor.BLACK.index); style.setBorderRight((short) 1); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体 style.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色. style.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色. // 另一个样式 HSSFCellStyle centerstyle = workbook.createCellStyle(); centerstyle.setFont(font); centerstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中 centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中 centerstyle.setWrapText(true); centerstyle.setLeftBorderColor(HSSFColor.BLACK.index); centerstyle.setBorderLeft((short) 1); centerstyle.setRightBorderColor(HSSFColor.BLACK.index); centerstyle.setBorderRight((short) 1); centerstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体 centerstyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色. centerstyle.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色. try { // 创建第一行 HSSFRow row0 = sheet.createRow(0); // 设置行高 row0.setHeight((short) 900); // 创建第一列 HSSFCell cell0 = row0.createCell(0); cell0.setCellValue(new HSSFRichTextString("中非发展基金投资项目调度会工作落实情况对照表")); cell0.setCellStyle(headstyle); /** * 合并单元格 * 第一个参数:第一个单元格的行数(从0开始) * 第二个参数:第二个单元格的行数(从0开始) * 第三个参数:第一个单元格的列数(从0开始) * 第四个参数:第二个单元格的列数(从0开始) */ CellRangeAddress range = new CellRangeAddress(0, 0, 0, 7); sheet.addMergedRegion(range); // 创建第二行 HSSFRow row1 = sheet.createRow(1); HSSFCell cell1 = row1.createCell(0); cell1.setCellValue(new HSSFRichTextString("本次会议时间:2009年8月31日 前次会议时间:2009年8月24日")); cell1.setCellStyle(centerstyle); // 合并单元格 range = new CellRangeAddress(1, 2, 0, 7); sheet.addMergedRegion(range); // 第三行 HSSFRow row2 = sheet.createRow(3); row2.setHeight((short) 750); HSSFCell cell = row2.createCell(0); cell.setCellValue(new HSSFRichTextString("责任者")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(1); cell.setCellValue(new HSSFRichTextString("成熟度排序")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(2); cell.setCellValue(new HSSFRichTextString("事项")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(3); cell.setCellValue(new HSSFRichTextString("前次会议要求\n/新项目的项目概要")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(4); cell.setCellValue(new HSSFRichTextString("上周工作进展")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(5); cell.setCellValue(new HSSFRichTextString("本周工作计划")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(6); cell.setCellValue(new HSSFRichTextString("问题和建议")); cell.setCellStyle(columnHeadStyle); cell = row2.createCell(7); cell.setCellValue(new HSSFRichTextString("备 注")); cell.setCellStyle(columnHeadStyle); // 访问数据库,得到数据集 List<DeitelVO> deitelVOList = getEntityManager().queryDeitelVOList(); int m = 4; int k = 4; for (int i = 0; i < deitelVOList.size(); i++) { DeitelVO vo = deitelVOList.get(i); String dname = vo.getDname(); List<Workinfo> workList = vo.getWorkInfoList(); HSSFRow row = sheet.createRow(m); cell = row.createCell(0); cell.setCellValue(new HSSFRichTextString(dname)); cell.setCellStyle(centerstyle); // 合并单元格 range = new CellRangeAddress(m, m + workList.size() - 1, 0, 0); sheet.addMergedRegion(range); m = m + workList.size(); for (int j = 0; j < workList.size(); j++) { Workinfo w = workList.get(j); // 遍历数据集创建Excel的行 row = sheet.getRow(k + j); if (null == row) { row = sheet.createRow(k + j); } cell = row.createCell(1); cell.setCellValue(w.getWnumber()); cell.setCellStyle(centerstyle); cell = row.createCell(2); cell.setCellValue(new HSSFRichTextString(w.getWitem())); cell.setCellStyle(style); cell = row.createCell(3); cell.setCellValue(new HSSFRichTextString(w.getWmeting())); cell.setCellStyle(style); cell = row.createCell(4); cell.setCellValue(new HSSFRichTextString(w.getWbweek())); cell.setCellStyle(style); cell = row.createCell(5); cell.setCellValue(new HSSFRichTextString(w.getWtweek())); cell.setCellStyle(style); cell = row.createCell(6); cell.setCellValue(new HSSFRichTextString(w.getWproblem())); cell.setCellStyle(style); cell = row.createCell(7); cell.setCellValue(new HSSFRichTextString(w.getWremark())); cell.setCellStyle(style); } k = k + workList.size(); } // 列尾 int footRownumber = sheet.getLastRowNum(); HSSFRow footRow = sheet.createRow(footRownumber + 1); HSSFCell footRowcell = footRow.createCell(0); footRowcell.setCellValue(new HSSFRichTextString(" 审 定:XXX 审 核:XXX 汇 总:XX")); footRowcell.setCellStyle(centerstyle); range = new CellRangeAddress(footRownumber + 1, footRownumber + 1, 0, 7); sheet.addMergedRegion(range); HttpServletResponse response = getResponse(); HttpServletRequest request = getRequest(); String filename = "未命名.xls";//设置下载时客户端Excel的名称 // 请见:http://zmx.iteye.com/blog/622529 filename = Util.encodeFilename(filename, request); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + filename); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); ouputStream.flush(); ouputStream.close(); } catch (Exception e) { e.printStackTrace(); } return null; }
发表评论
-
HTTP协议详解
2014-03-26 21:15 591转自:http://www.cnblogs.com/li08 ... -
Spring mvc 使用context:exclude-filter 与 context:include-filter解决事物失效问题
2013-04-21 17:13 47191 在主容器中(applicationContext.xm ... -
java中的堆(heap)和栈(stack)
2013-03-31 23:16 777----对这两个概念的不明好久,终于找到一篇好文,拿来共享 ... -
java System.getproperty() 参数大全
2013-03-22 12:26 1015System.getProperty()参数大全 ... -
rpc 方式调用webservice接口参数说明
2012-09-28 10:21 4535最经在项目中用到 webservice接口调用问题:需要使用 ... -
Java事务具体是什么东西
2012-06-20 12:55 1022在学习spring的时候,看到事务管理,感觉事务只和数据库操作 ... -
java中静态导入
2012-05-04 21:33 773静态导入就是导入某一个类下边的一个或者所有的静态方法,如下: ... -
java基础学习
2012-05-03 18:41 6801、对于switch语句以前只知道匹配上了 执行相对应case ... -
java中基本数据类型默认值问题
2012-05-03 16:38 926以前经常看到java中int类型和Integet类型的变量初始 ... -
java程序中方法的形参使用final修饰分析
2012-05-02 22:56 2042final修饰的内容不可更改,但是在方法的形参中使用final ... -
switch(type)语句type类型
2012-05-02 22:24 1195之前经常见到面试题上问 switch(type)中type类型 ... -
java基本数据类型
2012-05-01 16:38 748大家都知道,java编程语言提供了基本数据类型,基本数据类型有 ... -
单体类生成实例方式分析
2012-04-30 22:49 762最近在看传智播客多线程部分线程间共享的时候看到了一个单体的使用 ... -
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
2012-04-30 19:49 948Overload和Override的区别。 ... -
线程安全分析
2012-04-28 22:54 784java内存模型分析: 我们都知道计算机有高速缓存的存在, ... -
java内部类
2012-04-28 22:24 733这段时间看了传智播客 ... -
多线程创建和运行---学习随笔
2012-04-28 21:46 894我们都知道多线程有两种创建方式: 1、通过thread子类创建 ...
相关推荐
2. **写入Excel文件**:创建一个新的HSSFWorkbook实例,你可以添加新的工作表,然后向这些工作表中写入数据。HSSFWorkbook提供了丰富的API来设置单元格的类型(数值、字符串、日期等)、样式(字体、颜色、边框、...
1. **创建工作簿**:使用`HSSFWorkbook`的构造函数可以创建一个新的Excel工作簿实例。 2. **添加工作表**:`HSSFWorkbook`提供`createSheet()`方法,允许你为工作簿添加新的工作表。每个工作表都有一个唯一的名称,...
2. **创建 HSSFWorkbook 实例**:HSSFWorkbook 是 Apache POI 中用于创建和操作 Excel 文件的核心类。你可以通过调用 `new HSSFWorkbook()` 来创建一个新的工作簿对象。 3. **创建 HSSFSheet**:工作簿可以包含多个...
// 创建HSSFWorkbook实例 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建Sheet ISheet sheet = workbook.CreateSheet("Sheet1"); // 创建Row IRow row = sheet.CreateRow(0); // 创建Cell ICell cell...
- 写入数据:创建一个HSSFWorkbook对象,调用CreateSheet方法创建工作表,接着使用CreateRow和CreateCell方法添加行和单元格,设置单元格内容。 - 读取数据:打开已有的Excel文件,获取工作表,然后遍历每一行每一...
下面是一个使用XSSF的例子: ```java import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache....
这个“poi 导入导出实例例子”将向我们展示如何使用Apache POI来实现Excel文件的读写操作。 首先,让我们来看看`PoiToExcelReader.java`。这个文件应该包含了读取Excel文件的代码。在POI中,我们可以使用`...
在C#中,你可以使用NPOI的`HSSFWorkbook`类来打开一个Excel文件,然后遍历每个工作表(`ISheet`)和每个单元格(`ICell`)。通过读取单元格的值,我们可以将其添加到DataTable中。以下是一个基本的实现步骤: 1. ...
这个"**c#源码NPOI常用方法使用实例**"应该是一个包含多种NPOI操作Excel的示例代码集合,帮助开发者快速理解和应用NPOI库。 在C#中,NPOI库提供了以下关键功能: 1. **读取Excel文件(HSSFWorkbook/XSSFWorkbook)...
4. **读取Excel 2003 (.xls)**:使用HSSF API,首先创建一个HSSFWorkbook实例,然后通过FileInputStream打开.xls文件。接下来,可以遍历工作表,获取行和单元格的数据。每个单元格的数据可以通过CellType判断其类型...
这段代码首先创建了一个 `HSSFWorkbook` 实例,然后使用 `FileOutputStream` 将工作簿写入文件系统。注意,使用完输出流后必须关闭以释放资源,防止数据丢失或内存泄漏。 3. **POIFSFileSystem** `...
- 使用POI,你可以创建一个新的`HSSFWorkbook`实例,这代表了一个Excel工作簿。 - 创建`HSSFSheet`对象来表示工作簿中的一个工作表。 - 创建`HSSFRow`对象来表示工作表的一行,并使用`HSSFCell`对象来填充单元格...
// 创建一个HSSFWorkbook实例(适用于老版本Excel) HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); // 或者创建一个XSSFWorkbook实例(适用于新版本Excel) XSSFWorkbook xssfWorkbook = new XSSFWorkbook(); `...
"NPOI详细实例"是一个关于如何使用C#编程语言操作Excel文件的示例项目,特别是针对旧版的.xls格式。NPOI是一个开源库,它允许开发者在.NET环境中,无需依赖Microsoft Office,就能读写Excel文件。以下将详细介绍NPOI...
4. **Excel处理**:在“poi读取excel文件实例.docx”中,可能有详细的步骤教你如何使用SXSSF(提供内存优化的大文件读写)或XSSF(内存中处理整个文件)来读取和写入Excel数据。这包括创建工作簿、工作表,添加...
这个“NPOI导入导出实例”项目提供了一个实际操作的例子,展示了如何使用NPOI在.NET环境中读取、修改和创建Excel文件。以下是对NPOI库及其在导入导出操作中的应用进行的详细解释。 1. **NPOI介绍**: NPOI是一个与...
本实例将深入探讨如何使用NPOI进行Excel的导入和导出操作,并讲解如何判断Excel数据类型。 首先,我们需要了解NPOI的基本结构。在NPOI中,HSSFWorkbook代表一个Excel工作簿,而HSSFSheet则代表工作簿中的一个工作表...
使用HSSFWorkbook对象来读取.xls文件,XSSFWorkbook对象用于.xlsx文件。首先,你需要打开工作簿,然后获取其中的工作表,接着可以遍历行和单元格,提取数据。例如: ```java FileInputStream fis = new ...
提供的压缩包文件中的“NPOI读取Excel例子*”文件,包含了各种使用NPOI读取Excel的例子,比如如何处理日期、数字、公式等特殊类型的数据。此外,“测试代码.txt”可能包含了综合应用NPOI进行读写操作的示例。 5. *...
本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。 一、前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数...