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列单元格统计记录数,G和H列单元格使用公式统计数值,货币形式呈现
* @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读取03和07版本的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;
}
}
|
相关推荐
学习和理解这些知识点后,开发者可以利用POI库轻松地在Java应用程序中生成、编辑和读取Excel文件,满足各种业务需求。对于“poi-3.8-beta5”和“poi-bin.tar.gz”,它们可能是POI的特定版本,用于实际开发和运行示例...
在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...
Apache POI是一个流行的开源库,允许Java程序读取和写入Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在本场景中,提到的是POI 3.10版本,这是一个稳定且广泛使用的版本。 **Apache POI简介** Apache ...
本篇将深入讲解使用Apache POI库在Java中编辑Excel文件的相关知识点。 一、Apache POI简介 Apache POI是一个强大的API,它允许开发者在Java应用程序中创建、修改和读取Microsoft Office格式的文件,如Word(.doc)...
本教程“Java操作Excel之Poi视频教程”由java1234出品,旨在深入讲解如何使用Java POI进行Excel处理。 1. **什么是Apache POI?** Apache POI 是一个开源项目,它提供了API,使得Java程序能够处理Microsoft Office...
Java编写的Excel编辑器是一款基于Java技术开发的用于创建、编辑和管理电子表格的应用程序。在Java编程环境中,我们可以利用各种库,如Apache POI、JExcelAPI或JFreeChart等,来处理Excel文件。这款编辑器可能就是...
Java操作Excel的库Apache POI是一个广泛使用的开源项目,它允许开发者在Java应用程序中创建、修改和显示Microsoft Office格式的文件,尤其是Excel工作簿。在提供的压缩包中,包括了三个核心的Apache POI库文件:`poi...
Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel。它提供了丰富的API,使得在Java环境中操作Excel文件变得极其便捷。本文将深入探讨Java POI的使用,包括其核心功能、API使用示例...
总结来说,Apache POI为Java开发者提供了强大的工具,能够方便地在代码中创建、编辑和读取Excel文件,从而在各种业务场景中实现数据的导入导出。通过深入理解并熟练运用POI,可以极大地提高开发效率。
基于Java反射机制的POI实现Excel数据导入_导出.pdf 本文主要介绍了基于Java反射机制的POI实现Excel数据导入和导出的技术。该技术通过采用Java反射机制和自定义注解原理,实现了数据库与Excel文件之间的数据交互。...
通过使用POI,我们可以方便地在Java程序中创建、编辑和读取Excel电子表格。 **2. POI实现Excel上传** Excel上传通常涉及到以下步骤: - **文件上传接收**:首先,你需要在服务器端设置一个接口,通过HTTP请求接收...
8. **图表**:尽管在3.7版本中可能功能有限,但POI确实提供了创建和编辑Excel图表的能力。 9. **事件模型**:对于大文件,可以使用事件模型(SXSSF)进行内存效率更高的处理,避免一次性加载整个文件到内存中。 10...
Apache POI是Java中处理Microsoft Office格式文件(如Excel)的库,而iText则是用于创建和编辑PDF文档的库。 首先,我们需要导入必要的库。在项目中添加Apache POI和iText的依赖。如果你使用的是Maven,可以在pom....
在Java开发中,Apache POI库是一个非常实用的工具,用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。当我们谈论“poi excel加密”时,这通常是指使用Apache POI来处理加密的Excel文件。Excel文件...
本篇文章将深入探讨如何使用Apache POI创建一个Java工具类来实现高效且灵活的Excel导出功能。 首先,我们需要了解Apache POI的基本用法。Apache POI提供了两种主要的API用于处理Excel文件:HSSF(用于旧版的.xls...
综上所述,Java解析Excel文件使用Apache POI库可以方便地完成读取、写入和编辑Excel文档的工作,而提供的压缩包文件则包含了不同版本的库以及可能的使用说明,为开发者提供了完整的工具集。在实际开发中,应根据项目...
首先,我们需要一个库来操作Excel,Apache POI是一个广泛使用的开源Java API,专门用于读写Microsoft Office格式的文件,包括Excel。使用Apache POI,我们可以创建、修改和读取Excel文件。安装POI库后,我们就可以...
标题中的"poi(java导出excel表jar包)"指的就是使用Apache POI库来实现Java程序导出数据到Excel(xls格式)的功能。描述中提到的"必需的jar包"是指为了使用Apache POI进行Excel操作,我们需要引入一系列的库文件,...
Java中有一些著名的库,如Apache POI,用于读取和写入Microsoft Office格式的文件,包括Excel。这些库允许开发者以编程方式访问Excel的工作表、单元格、样式等元素。在"Excel2html"中,开发者可能利用了POI库来解析...
在Java开发中,Apache POI库是一个非常重要的工具,它允许程序员读取、写入和修改Microsoft Office格式的文件,包括Excel。"基于POI的Excel多Sheet页导出导入工具类"是一个实用的Java类库,专为处理Excel文件中的多...