import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ReadXlsTest {
// 设置cell编码解决中文高位字节截断
private static short XLS_ENCODING = HSSFWorkbook.ENCODING_UTF_16;
// 定制日期格式
private static String DATE_FORMAT = " m/d/yy "; // "m/d/yy h:mm"
// 定制浮点数格式
private static String NUMBER_FORMAT = " #,##0.00 ";
private String xlsFileName;
private HSSFWorkbook workbook;
private HSSFSheet sheet;
private HSSFRow row;
/**
* 初始化Excel
*
* @param fileName
* 导出文件名
*/
public ReadXlsTest(String fileName) {
this.xlsFileName = fileName;
this.workbook = new HSSFWorkbook();
this.sheet = workbook.createSheet();
}
/**
* 导出Excel文件
*
* @throws XLSException
*/
public void exportXLS() throws Exception {
try {
FileOutputStream fOut = new FileOutputStream(xlsFileName);
workbook.write(fOut);
fOut.flush();
fOut.close();
} catch (FileNotFoundException e) {
throw new Exception(" 生成导出Excel文件出错! ", e);
} catch (IOException e) {
throw new Exception(" 写入Excel文件出错! ", e);
}
}
/**
* 增加一行
*
* @param index
* 行号
*/
public void createRow(int index) {
this.row = this.sheet.createRow(index);
}
/**
* 设置单元格
*
* @param index
* 列号
* @param value
* 单元格填充值
*/
public void setCell(int index, String value) {
HSSFCell cell = this.row.createCell((short) index);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(XLS_ENCODING);
cell.setCellValue(value);
}
/**
* 设置单元格
*
* @param index
* 列号
* @param value
* 单元格填充值
*/
public void setCell(int index, Calendar value) {
HSSFCell cell = this.row.createCell((short) index);
cell.setEncoding(XLS_ENCODING);
cell.setCellValue(value.getTime());
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT)); // 设置cell样式为定制的日期格式
cell.setCellStyle(cellStyle); // 设置该cell日期的显示格式
}
/**
* 设置单元格
*
* @param index
* 列号
* @param value
* 单元格填充值
*/
public void setCell(int index, int value) {
HSSFCell cell = this.row.createCell((short) index);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(value);
}
/**
* 设置单元格
*
* @param index
* 列号
* @param value
* 单元格填充值
*/
public void setCell(int index, double value) {
HSSFCell cell = this.row.createCell((short) index);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(value);
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式
HSSFDataFormat format = workbook.createDataFormat();
cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT)); // 设置cell样式为定制的浮点数格式
cell.setCellStyle(cellStyle); // 设置该cell浮点数的显示格式
}
public static void main(String[] args) {
System.out.println( " 开始导出Excel文件 " );
ReadXlsTest e = new ReadXlsTest("C://test.xls");
e.createRow( 0 );
e.setCell( 0 , " 编号 " );
e.setCell( 1 , " 名称 " );
e.setCell( 2 , " 日期 " );
e.setCell( 3 , " 金额 " );
e.createRow( 1 );
e.setCell( 0 , 1 );
e.setCell( 1 , " 工商银行 " );
e.setCell( 2 , Calendar.getInstance());
e.setCell( 3 , 111123.99 );
e.createRow( 2 );
e.setCell( 0 , 2 );
e.setCell( 1 , " 招商银行 " );
e.setCell( 2 , Calendar.getInstance());
e.setCell( 3 , 222456.88 );
try {
e.exportXLS();
System.out.println( " 导出Excel文件[成功] " );
} catch (Exception e1) {
System.out.println( " 导出Excel文件[失败] " );
e1.printStackTrace();
}
}
}
Excel文档的模板可以从文件系统中引入,再将数据插入即可:
HSSFWorkbook wb = null;
InputStream is = null;
try
{
is = getClass().getResourceAsStream("/com/util/abc.xls");
POIFSFileSystem fs = new POIFSFileSystem(is);
wb = new HSSFWorkbook(fs);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(null!=is)
is.close();
}catch(Exception e){
e.printStackTrace();
}
}
分享到:
相关推荐
6. **生成Excel文档**:XSSF API允许开发者创建新的Excel工作簿,添加工作表,设置单元格值,格式化单元格等。从XML数据生成Excel,可能需要解析XML,然后根据数据创建对应的行和列。 7. **PoiWordModel**:这个...
标题中的“poi生成excel实例”指的是使用Apache POI库来创建和操作Microsoft Excel文件的实践案例。Apache POI是开源的Java库,它允许开发者在Java应用中读写Microsoft Office格式的文件,包括Excel。 在描述中提到...
它不涉及网络交互,而是直接在本地生成Excel文件。步骤与Servlet类似,只是数据写入FileOutputStream,生成的文件保存在本地文件系统中。 以下是一个简化的示例,演示了如何使用POI导出Excel: ```java import org...
在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...
本实例将详细讲解如何利用Apache POI库在Java项目中导出Excel文件。 首先,我们需要引入Apache POI的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi...
这篇博客文章“Apache POI 导出excel实例”将深入探讨如何使用Apache POI库来生成Excel文件,这对于在Java环境中处理大量数据并需要导出为Excel格式的应用非常有用。 首先,我们需要导入Apache POI库到我们的项目中...
总的来说,这个压缩包提供的内容可能是一个关于如何使用Java的Apache POI库进行Excel文档操作的教程或实例集合,涵盖了创建、读取、更新和写入Excel文件的各种技巧和最佳实践。对于需要处理Excel的Java开发者来说,...
在本主题中,我们将重点关注使用 POI 库生成 Excel 文件以及与数据连接池的整合。 首先,让我们深入了解如何使用 Apache POI 创建 Excel 文件。POI 提供了 HSSF(用于旧版 .xls 文件)和 XSSF(用于 .xlsx 文件)...
本示例将详细介绍如何在JSP中利用POI库生成Excel文件,并直接在浏览器中导出。 首先,确保在项目中已经引入了Apache POI的依赖库。POI提供了对Excel 2003(HSSF)和Excel 2007以上版本(XSSF)的支持。在这个示例中...
在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...
- 考虑使用模板文件,通过替换占位符的方式来生成Excel,以提高效率。 以上就是使用Java POI导出Excel 2007的实例源代码所涉及的主要知识点。通过这些步骤,开发者可以轻松地在Java程序中生成符合需求的Excel文件。...
总的来说,Apache POI 和 JExcelAPI 都是强大的工具,能够帮助Java开发者生成Excel报表。根据项目的具体需求和复杂性,可以选择适合的库进行使用。在实际开发中,务必确保选择的库版本与Java环境兼容,并根据项目...
这个“POI 生成、解析excel,demo”很显然是一个使用 Apache POI 库创建和解析 Excel 文档的示例。Apache POI 提供了 Java API,使得开发者能够方便地在 Java 应用程序中读取、写入以及修改 Excel 文件,无论是老版本...
在本实例中,我们将关注使用 Apache POI 来生成 Excel 报表。这个简单的 POI 实例非常适合初学者参考,它能帮助你快速理解和应用 POI 库。 首先,让我们了解 POI 的核心组件——HSSF 和 XSSF。HSSF 是用来处理 .xls...
在这个场景中,你提到的"POI生成doc文档和docx文档相关jar包"是指使用Apache POI库在Android平台上创建Word文档的开发资源。 Apache POI提供了Java API,使得开发者可以在不依赖Microsoft Office的情况下,读取、...
总之,使用Apache POI生成带文字水印的Excel文件是一项实用的技能,能够帮助Java开发者在处理Excel文档时添加额外的安全层或标识。通过学习和理解提供的代码示例,你可以深入理解如何操作Excel文件,并进一步扩展...
在Java编程领域,Apache POI库是一个非常重要的工具,它允许开发者处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)文档。本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在...
为了解决这个问题,Apache POI提供了一种直接在内存中生成Excel文件并将其作为HTTP响应流返回给客户端的方法。这种方法无需在服务器上保存任何临时文件,降低了系统的资源消耗。 四、步骤详解 1. 添加Apache POI...
在Java开发中,POI库被广泛用于读取、写入和修改Excel文档。本篇将深入探讨如何利用Apache POI实现基于Excel模板的导出功能。 一、Apache POI基本概念 1. HSSF与XSSF:Apache POI提供了两种处理Excel的API,HSSF...