`
Charlie_1989
  • 浏览: 13229 次
文章分类
社区版块
存档分类
最新评论

Java实现Excel编辑之POI

 
阅读更多


最后编辑时间:2015-02-2817:54

JAVA通常有两种方法来操作Excel,分别是POI和JExcelAPI,而且都是开源的。

POI参考:

JExcelAPI参考:

http://www.oschina.net/code/snippet_126103_3553

http://blog.csdn.net/aking21alinjuju/article/details/5996110

应用场景:

* excel的第一个sheet首行添加标题,宋体,18号,加粗,在内容所有列合并居中;

* 在最后添加一行,格式与初始第一行一样,字体颜色为蓝色;

* A列单元格统计记录数,GH列单元格使用公式统计数值,货币格式呈现;

POI使用JAR:poi-3.8-20120326.jar, poi-ooxml-3.8-20120326.jar , poi-ooxml-schemas-3.8-20120326.jar ,xmlbeans-2.3.jar

代码:

package charlie.utils.excel;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import org.apache.poi.hssf.util.CellRangeAddress;

import org.apache.poi.hssf.util.HSSFColor;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.CellStyle;

import org.apache.poi.ss.usermodel.Font;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.ss.usermodel.WorkbookFactory;

/**

* @author CharlieChen

* @DateTime 2015-1-5 上午11:46:43

* @version 1.0

*/

@SuppressWarnings("deprecation")

public class PoiUtil {

/**

* @param args

*/

public static void main(String[] args) {

PoiUtil poiUtil = new PoiUtil();

String excelPath = "D:/temp/test/abc.xlsx";

Workbook wb = poiUtil.getExcelWorkBook(excelPath);

String reName = "D:/temp/test/temp.xlsx";

poiUtil.editExcel(wb,reName);

}

/**

* excel的第一个sheet首行添加标题,宋体,18号,加粗,在内容所有列合并居中

* 在最后添加一行,格式与初始第一行一样,字体颜色为蓝色,

* A列单元格统计记录数,GH列单元格使用公式统计数值,货币形式呈现

* @param wb

* @param reName

*/

public void editExcel(Workbook wb,String reName){

Sheet sheet = wb.getSheetAt(0);

int maxRow = sheet.getLastRowNum();//获取行数

Row firstRow = sheet.getRow(0);//获取第一行

int maxColumn = firstRow.getLastCellNum();//获取列数

sheet.shiftRows(0, maxRow, 1);//整体下移一行,相当于在首行插入一行

Row titleRow = sheet.createRow(0);//新增行

//增加合并区域,首行从第一列到有内容的最后一列

sheet.addMergedRegion(new CellRangeAddress(0,0,0,maxColumn-1));

//合并单元格

Cell titleCell = titleRow.createCell(0);

CellStyle cellStyle = wb.createCellStyle();

titleCell.setCellValue("显示内容");

Font font = wb.createFont();

font.setFontName("宋体");//字体

font.setFontHeightInPoints((short)18);//字体大小

font.setBoldweight(Font.BOLDWEIGHT_BOLD);//加粗

cellStyle.setFont(font);

cellStyle.setAlignment(CellStyle.ALIGN_CENTER);//居中对齐

titleCell.setCellStyle(cellStyle);

Row lastRow = sheet.createRow(maxRow + 1);

//最后新增一行

int count = maxRow - 1;

Font lastFont = wb.createFont();

lastFont.setFontName("宋体");//字体

lastFont.setFontHeightInPoints((short)11);

//颜色设置为蓝色

lastFont.setColor(HSSFColor.BLUE.index);

CellStyle lastStyle = wb.createCellStyle();

lastStyle.cloneStyleFrom(firstRow.getCell(0).getCellStyle());

lastStyle.setFont(lastFont);

//构造最后一行

for(int i=0;i<maxColumn;i++){

lastRow.createCell(i).setCellStyle(lastStyle);

}

//填数据

lastRow.getCell(0).setCellValue("记录数:" + count);

//份额余额统计

lastRow.getCell(6).setCellType(Cell.CELL_TYPE_FORMULA);

lastRow.getCell(6).setCellFormula("sum(G3:G"+(maxRow+1)+")");

//货币格式显示

CellStyle currencyStyle = wb.createCellStyle();

currencyStyle.cloneStyleFrom(lastStyle);

currencyStyle.setDataFormat((short)4);

lastRow.getCell(6).setCellStyle(currencyStyle);

//最新市值统计

lastRow.getCell(7).setCellType(Cell.CELL_TYPE_FORMULA);

lastRow.getCell(7).setCellFormula("sum(H3:H"+(maxRow+1)+")");

lastRow.getCell(7).setCellStyle(currencyStyle);

//保存到文件

FileOutputStream is;

try {

is = new FileOutputStream(reName);

wb.write(is);

is.close();

System.out.println("保存完成");

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* @method读取0307版本的excel的公共方法,根据文件的路径创建Workbook对象

* @param filePath 文件全路径

*/

public Workbook getExcelWorkBook(String filePath) {

InputStream ins = null;

Workbook book = null;

try {

ins=new FileInputStream(new File(filePath));

book = WorkbookFactory.create(ins);

ins.close();

return book;

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (InvalidFormatException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (ins != null) {

try {

ins.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

}

货币格式显示参考:

http://blog.csdn.net/zxcvbnmluton/article/details/6066916

分享到:
评论

相关推荐

    java生成excel文件(poi).rar_POI java_java excel_poi EXCEL模板_poi-3.8-

    学习和理解这些知识点后,开发者可以利用POI库轻松地在Java应用程序中生成、编辑和读取Excel文件,满足各种业务需求。对于“poi-3.8-beta5”和“poi-bin.tar.gz”,它们可能是POI的特定版本,用于实际开发和运行示例...

    java实现excel导入导出.pdf

    在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...

    java导出excel及POI3.10jar包

    Apache POI是一个流行的开源库,允许Java程序读取和写入Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在本场景中,提到的是POI 3.10版本,这是一个稳定且广泛使用的版本。 **Apache POI简介** Apache ...

    Java编辑Excel的类库(poi)

    本篇将深入讲解使用Apache POI库在Java中编辑Excel文件的相关知识点。 一、Apache POI简介 Apache POI是一个强大的API,它允许开发者在Java应用程序中创建、修改和读取Microsoft Office格式的文件,如Word(.doc)...

    Java操作Excel之Poi视频教程 java1234出品

    本教程“Java操作Excel之Poi视频教程”由java1234出品,旨在深入讲解如何使用Java POI进行Excel处理。 1. **什么是Apache POI?** Apache POI 是一个开源项目,它提供了API,使得Java程序能够处理Microsoft Office...

    java写的excel编辑器,界面令人惊叹!

    Java编写的Excel编辑器是一款基于Java技术开发的用于创建、编辑和管理电子表格的应用程序。在Java编程环境中,我们可以利用各种库,如Apache POI、JExcelAPI或JFreeChart等,来处理Excel文件。这款编辑器可能就是...

    java操作excel的jar包POI

    Java操作Excel的库Apache POI是一个广泛使用的开源项目,它允许开发者在Java应用程序中创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿。在提供的压缩包中,包括了三个核心的Apache POI库文件:`poi...

    Java Poi 操作excel的API 好用

    Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel。它提供了丰富的API,使得在Java环境中操作Excel文件变得极其便捷。本文将深入探讨Java POI的使用,包括其核心功能、API使用示例...

    java操作excel的poi手册

    总结来说,Apache POI为Java开发者提供了强大的工具,能够方便地在代码中创建、编辑和读取Excel文件,从而在各种业务场景中实现数据的导入导出。通过深入理解并熟练运用POI,可以极大地提高开发效率。

    基于Java反射机制的POI实现Excel数据导入_导出.pdf

    基于Java反射机制的POI实现Excel数据导入_导出.pdf 本文主要介绍了基于Java反射机制的POI实现Excel数据导入和导出的技术。该技术通过采用Java反射机制和自定义注解原理,实现了数据库与Excel文件之间的数据交互。...

    POI实现的excel的上传下载

    通过使用POI,我们可以方便地在Java程序中创建、编辑和读取Excel电子表格。 **2. POI实现Excel上传** Excel上传通常涉及到以下步骤: - **文件上传接收**:首先,你需要在服务器端设置一个接口,通过HTTP请求接收...

    Excel操作java后台poi3.7包

    8. **图表**:尽管在3.7版本中可能功能有限,但POI确实提供了创建和编辑Excel图表的能力。 9. **事件模型**:对于大文件,可以使用事件模型(SXSSF)进行内存效率更高的处理,避免一次性加载整个文件到内存中。 10...

    java Excel文件转PDF文件

    Apache POI是Java中处理Microsoft Office格式文件(如Excel)的库,而iText则是用于创建和编辑PDF文档的库。 首先,我们需要导入必要的库。在项目中添加Apache POI和iText的依赖。如果你使用的是Maven,可以在pom....

    java导出到excel的工具类

    本篇文章将深入探讨如何使用Apache POI创建一个Java工具类来实现高效且灵活的Excel导出功能。 首先,我们需要了解Apache POI的基本用法。Apache POI提供了两种主要的API用于处理Excel文件:HSSF(用于旧版的.xls...

    java解析excel文件 poi.jar

    综上所述,Java解析Excel文件使用Apache POI库可以方便地完成读取、写入和编辑Excel文档的工作,而提供的压缩包文件则包含了不同版本的库以及可能的使用说明,为开发者提供了完整的工具集。在实际开发中,应根据项目...

    poi excel加密

    在Java开发中,Apache POI库是一个非常实用的工具,用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。当我们谈论“poi excel加密”时,这通常是指使用Apache POI来处理加密的Excel文件。Excel文件...

    java 处理Excel 带 List

    首先,我们需要一个库来操作Excel,Apache POI是一个广泛使用的开源Java API,专门用于读写Microsoft Office格式的文件,包括Excel。使用Apache POI,我们可以创建、修改和读取Excel文件。安装POI库后,我们就可以...

    poi(java导出excel表jar包)

    标题中的"poi(java导出excel表jar包)"指的就是使用Apache POI库来实现Java程序导出数据到Excel(xls格式)的功能。描述中提到的"必需的jar包"是指为了使用Apache POI进行Excel操作,我们需要引入一系列的库文件,...

    Excel2html-纯java实现excel转html

    Java中有一些著名的库,如Apache POI,用于读取和写入Microsoft Office格式的文件,包括Excel。这些库允许开发者以编程方式访问Excel的工作表、单元格、样式等元素。在"Excel2html"中,开发者可能利用了POI库来解析...

    基于POI的Excel多Sheet页导出导入工具类

    在Java开发中,Apache POI库是一个非常重要的工具,它允许程序员读取、写入和修改Microsoft Office格式的文件,包括Excel。"基于POI的Excel多Sheet页导出导入工具类"是一个实用的Java类库,专为处理Excel文件中的多...

Global site tag (gtag.js) - Google Analytics