`
iehyou
  • 浏览: 135160 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记录开发过程用的代码段001--POI生成excel表格,如何合并单元格

    博客分类:
  • J2EE
阅读更多
POI生成excel表格,如何合并单元格

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;

public class ExcelTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws IOException {

		try {
			HSSFWorkbook wb = new HSSFWorkbook();
			HSSFSheet sheet = wb.createSheet("new   sheet");
			HSSFCellStyle style = wb.createCellStyle(); // 样式对象

			style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
			style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
			HSSFRow row = sheet.createRow((short) 0);
			HSSFRow row2 = sheet.createRow((short) 1);

			sheet.addMergedRegion(new Region(0, (short) 0, 1, (short) 0));
			HSSFCell ce = row.createCell((short) 0);
			ce.setEncoding(HSSFCell.ENCODING_UTF_16);// 中文处理
			ce.setCellValue("项目\\日期"); // 表格的第一行第一列显示的数据
			ce.setCellStyle(style); // 样式,居中
			int num = 0;
			for (int i = 0; i < 9; i++) { // 循环9次,每一次都要跨单元格显示
				// 计算从那个单元格跨到那一格
				int celln = 0;
				int celle = 0;
				if (i == 0) {
					celln = 0;
					celle = 1;
				} else {
					celln = (i * 2);
					celle = (i * 2 + 1);
				}
				// 单元格合并
				// 四个参数分别是:起始行,起始列,结束行,结束列
				sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,
						(short) (celle + 1)));
				HSSFCell cell = row.createCell((short) (celln + 1));
				cell.setCellValue("merging" + i); // 跨单元格显示的数据
				cell.setCellStyle(style); // 样式
				// 不跨单元格显示的数据,如:分两行,上一行分别两格为一格,下一行就为两格,“数量”,“金额”
				HSSFCell cell1 = row2.createCell((short) celle);
				HSSFCell cell2 = row2.createCell((short) (celle + 1));
				cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
				cell1.setCellValue("数量");
				cell1.setCellStyle(style);
				cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
				cell2.setCellValue("金额");
				cell2.setCellStyle(style);
				num++;
			}

			// 在后面加上合计百分比

			// 合计 在最后加上,还要跨一个单元格
			sheet.addMergedRegion(new Region(0, (short) (2 * num + 1), 0,
					(short) (2 * num + 2)));
			HSSFCell cell = row.createCell((short) (2 * num + 1));
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue("合计");
			cell.setCellStyle(style);
			HSSFCell cell1 = row2.createCell((short) (2 * num + 1));
			HSSFCell cell2 = row2.createCell((short) (2 * num + 2));
			cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell1.setCellValue("数量");
			cell1.setCellStyle(style);
			cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell2.setCellValue("金额");
			cell2.setCellStyle(style);

			// 百分比 同上
			sheet.addMergedRegion(new Region(0, (short) (2 * num + 3), 0,
					(short) (2 * num + 4)));
			HSSFCell cellb = row.createCell((short) (2 * num + 3));
			cellb.setEncoding(HSSFCell.ENCODING_UTF_16);
			cellb.setCellValue("百分比");
			cellb.setCellStyle(style);
			HSSFCell cellb1 = row2.createCell((short) (2 * num + 3));
			HSSFCell cellb2 = row2.createCell((short) (2 * num + 4));
			cellb1.setEncoding(HSSFCell.ENCODING_UTF_16);
			cellb1.setCellValue("数量");
			cellb1.setCellStyle(style);
			cellb2.setEncoding(HSSFCell.ENCODING_UTF_16);
			cellb2.setCellValue("金额");
			cellb2.setCellStyle(style);

			FileOutputStream fileOut = new FileOutputStream("workbook.xls");
			wb.write(fileOut);
			fileOut.close();
			System.out.print("OK");
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}

}
分享到:
评论

相关推荐

    java 后端生成pdf模板合并单元格表格的案例.docx

    ### Java后端生成PDF模板合并单元格表格案例详解 #### 概述 本文将详细介绍一个Java后端生成PDF模板,并在此基础上实现单元格合并功能的案例。案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出...

    java使用POI插件绘制表格曲线图

    在“java使用POI插件绘制表格曲线图”这个主题中,我们将深入探讨如何使用POI来在Excel工作表中绘制曲线图表。Apache POI提供了一个API,使得开发者可以方便地创建图表,包括曲线图,而无需依赖其他外部插件。 首先...

    Apache POI导入数据到Excel电子表格

    在Java开发中,Apache POI 提供了一套丰富的API,使得开发者能够方便地读取、写入和修改Excel电子表格。本篇文章将详细介绍如何使用Apache POI 导入数据到Excel。 首先,你需要在项目中引入Apache POI相关的库。...

    POI单元格的合并、数据行的分组以及Excel窗口的冻结.doc

    标题中的“POI单元格的合并、数据行的分组以及Excel窗口的冻结”涉及到Apache POI库在处理Microsoft Excel文档时的一些高级功能。Apache POI是一个流行的Java库,它允许程序员创建、修改和显示MS Office格式的文件,...

    POI 完美生成带文字水印的excle

    总之,使用Apache POI生成带文字水印的Excel文件是一项实用的技能,能够帮助Java开发者在处理Excel文档时添加额外的安全层或标识。通过学习和理解提供的代码示例,你可以深入理解如何操作Excel文件,并进一步扩展...

    JAVA通过poi对Excel进行表格的读取

    下面是一段简单的代码示例,展示了如何使用Apache POI读取Excel表格: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io...

    Android-将数据写入Excel表格并存储到外部存储中

    在Android平台上,将数据写入Excel表格并存储到外部存储是一项常见的需求,特别是在数据分析、报告生成或者用户数据导出的场景下。这个过程涉及到多个关键知识点,包括Android的文件操作、Excel文件格式处理以及可能...

    java POI生成word.zip

    在本案例中,"java POI生成word.zip"是一个压缩包,包含使用Java POI库生成Word文档的示例代码。以下是基于这个主题的相关知识点: 1. **Java POI库介绍** - Java POI 是一套API,用于处理Microsoft Office格式的...

    poi 实例 excel

    在这里,我们将详细解析这段代码中的知识点,主要包括POI的基本用法、如何在JSP中使用POI生成Excel文件、以及相关的设置和操作。 ### Apache POI的基本用法 Apache POI提供了多种类来处理不同版本的Office文档。...

    Java POI 生成Word文档所需的jar包

    以下是一个简单的例子,展示了如何使用POI生成一个包含文本和段落的Word文档: ```java import org.apache.poi.xwpf.usermodel.*; public class WordGenerator { public static void main(String[] args) { ...

    将指定的记录生成excel文件

    总的来说,生成Excel文件是一个涉及数据处理、文件操作和编程技术的综合过程。无论选择哪种编程语言,理解数据结构和利用相应的库是关键。在Python中,pandas提供了一流的Excel支持;而在Java中,Apache POI则是一个...

    POI 生成Word文档

    - 创建表格:使用`XWPFTable`类,通过`createTable()`方法创建表格,并通过`addRow()`方法添加行,`createCell()`方法添加单元格。 - 创建列表:使用`XWPFNumbering`和`XWPFFactory`来创建和管理列表样式,然后在...

    java及jsp下导出excel表格

    下面是一段使用Apache POI在Java中创建并导出Excel表格的示例代码: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf....

    poi导出excel

    数据写入是将列表数据转换成Excel表格的过程,主要包括以下步骤: - 创建`Sheet`对象。 - 设置表头行。 - 循环遍历数据列表,将每条数据写入一个新行。 - 设置单元格样式。 - 如果需要,可以添加自定义公式。 ####...

    生成Excel表的java代码.pdf

    总结来说,这段代码提供了一种构建Excel数据模型的方式,通过自定义的`DataItem`、`DataRow`和`DataList`类,可以方便地组织和管理Excel表格数据。结合如Apache POI等库,可以将这些数据结构转换为实际的Excel文件。...

    jxls实现Excel表格

    在Java开发中,处理和生成Excel表格是一项常见的任务,尤其是在数据导入导出、报表生成以及数据分析等场景。jxls是一个强大的库,它允许开发者利用Java编程来动态地填充Excel模板,从而生成复杂的Excel文件。这个库...

    poi3.7(excel)

    【标题】"poi3.7(excel)"是一个关于使用Apache POI 3.7版本处理Excel文件的知识点。Apache POI是开源项目,专门用于Java应用程序读取和写入Microsoft Office格式的文件,特别是Excel(.xls)和Word(.doc)文档。 ...

    导出excel表格的jar包.zip

    在Java web开发中,导出Excel表格是一项常见的需求,例如为了数据分析、报表生成或数据交换。本资源"导出excel表格的jar包.zip"提供了一组必要的库文件,帮助开发者轻松实现这一功能。以下是相关知识点的详细介绍: ...

    使用POI实现表格导出jar包.zip

    在Java开发中,有时我们需要将数据导出为Excel表格格式,以便用户可以方便地查看、编辑和打印。Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入...

Global site tag (gtag.js) - Google Analytics