「javapoi介绍」java的po

博主:adminadmin 2023-03-22 11:36:13 368

本篇文章给大家谈谈javapoi介绍,以及java的po对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

jxl和POI的区别

首先从优缺点上来说

一、jxl

优点:

Jxl对中文支持非常好,操作简单,方法看名知意。

Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写

支持Excel 95-2000的所有版本(网上说目前可以支持Excel2007了,还没有尝试过)

生成Excel 2000标准格式

支持字体、数字、日期操作

能够修饰单元格属性

支持图像和图表,但是这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

缺点:效率低,图片支持不完善,对格式的支持不如POI强大

二、POI

优点:

效率高

支持公式,宏,一些企业应用上会非常实用

能够修饰单元格属性

支持字体、数字、日期操作

缺点:不成熟,代码不能跨平台,貌似不少同行在使用工程中还碰到让人郁闷的BUG(最近的项目中也是遇到了一些bug,不过目前没有查出来是代码的问题还是POI的问题,总之问题很诡异,数据替代参数总有失败的。关于不能跨平台这一说,我也没有试验过,不过Java不是跨平台吗?POI是JAVA的一个组件,怎么就不能跨平台了呢,总之这些问题还需要在以后的项目中多多实践,才能比较出区别之处。)

POI动态生成Excel

项目功能里要求能够将展示的报表导出excel,因为报表的数据都是动态从list传进来的,所以使用了POI技术来动态构建excel文件。

百科里说POI是介个样子的

“ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对MicrosoftOffice格式档案读和写的功能”

简单来说就是通过它的API可以进行创建/读取文档,sheet,行列单元格等操作,也可以设置文档的各个样式。

刚接触这个任务的时候查了很多资料,最后主要是参考了这篇文章,程序复制粘贴就跑得通,对POI的整个理解可以得到很好地提升。

详解JAVA POI导出EXCEL报表的操作(包括各种格式及样式的实现)

然后参考着就实现了项目里要求的样子啦

=======================================================

百科中的示例附上作为下次使用的备忘。

创建Excel 文档

示例1将演示如何利用Jakarta POI API 创建Excel 文档。

示例1程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java .io.FileOutputStream;

public class CreateXL {

/** Excel 文件要存放的位置,假定在D盘下*/

public static String outputFile="D:\test.xls";

public static void main(String argv[]){

try{

// 创建新的Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 在Excel工作簿中建一工作表,其名为缺省值

// 如要新建一名为"效益指标"的工作表,其语句为:

// HSSFSheet sheet = workbook.createSheet("效益指标");

HSSFSheet sheet = workbook.createSheet();

// 在索引0的位置创建行(最顶端的行)

HSSFRow row = sheet.createRow((short)0);

//在索引0的位置创建单元格(左上端)

HSSFCell cell = row.createCell((short) 0);

// 定义单元格为字符串类型

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

// 在单元格中输入一些内容

cell.setCellValue("增加值");

// 新建一输出文件流

FileOutputStream fOut = new FileOutputStream(outputFile);

// 把相应的Excel 工作簿存盘

workbook.write(fOut);

fOut.flush();

// 操作结束,关闭文件

fOut.close();

System.out.println("文件生成...");

}catch(Exception e) {

System.out.println("已运行 xlCreate() : " + e );

}

}

}

读取Excel文档中的数据

示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。

示例2程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java .io.FileInputStream;

public class ReadXL {

/** Excel文件的存放位置。注意是正斜线*/

public static String fileToBeRead="D:\test1.xls";

public static void main(String argv[]){

try{

// 创建对Excel工作簿文件的引用

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

// 创建对工作表的引用。

// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")

HSSFSheet sheet = workbook.getSheet("Sheet1");

// 也可用getSheetAt(int index)按索引引用,

// 在Excel文档中,第一张工作表的缺省索引是0,

// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);

// 读取左上端单元

HSSFRow row = sheet.getRow(0);

HSSFCell cell = row.getCell((short)0);

// 输出单元内容,cell.getStringCellValue()就是取所在单元的值

System.out.println("左上端单元是: " + cell.getStringCellValue());

}catch(Exception e) {

System.out.println("已运行xlRead() : " + e );

}

}

}

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置 字体和单元格的格式,然后再应用这些格式:

1、创建字体,设置其为红色、粗体:

HSSFFont font = workbook.createFont();

font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

2、创建格式

HSSFCellStyle cellStyle= workbook.createCellStyle();

cellStyle.setFont(font);

3、应用格式

HSSFCell cell = row.createCell((short) 0);

cell.setCellStyle(cellStyle);

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

cell.setCellValue("标题 ");

处理WORD文档

import java .io.*;

import org.apache.poi.hwpf.extractor.WordExtractor;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

public class TestPoi {

public TestPoi() {

}

public static void main(String args[]) throws Exception

{

FileInputStream in = new FileInputStream ("D:\a.doc");

WordExtractor extractor = new WordExtractor();

String str = extractor.extractText(in);

//System.out.println("the result length is"+str.length());

System.out.println(str);

}

}

搜集链接 方便以后查阅

POI操作Excel常用方法总结

自己封装的poi操作excel工具类

Java中的POI他是干嘛的可以做什么

这个是一个用于操作EXCEL和WORD的工具包,不过貌似开发团队解散了,一直没有更新,对WORD的支持不是很好,建议还是使用ITEXT之类吧

apache poi什么用

在 GrapeCity Documents出现以前,服务端文档组件向来以Apache POI为代表,作为一款由Java编写的开源API库,Apache POI 主要应用于对Microsoft Office文档进行读、写,以及创建和维护。

但正如POI所定义的那样:作为“Poor Obfuscation Implementation”首字母的缩写,Apache POI仅提供“简单的模糊实现”,其在创建复杂逻辑的大型文档时,经常会捉襟见肘。

如果想通过简单的代码逻辑,快速创建、加载、编辑、导入/导出大型文档(Excel、Word、PDF),并将其部署到云端时,又该如何实现?

而这些需求,恰恰是GrapeCity Documents 可以满足的。

GrapeCity Documents 是一款快速且高效的服务端文档组件包,可在 Windows、Mac、Linux 上完美运行,同时适用于 .NET和 Java 平台,可在不依赖 Microsoft Office 和 Acrobat 组件的情况下,提供快速生成、加载、编辑和保存 Excel、PDF、Word文档的功能。

GrapeCity Documents 由四种针对不同文档和开发框架的组件构成:

·       适用于所有 .NET 平台的 Excel 文档 API —— GcExcel(.NET)

·       适用于所有 Java 平台的 Excel 文档 API —— GcExcel(Java)

·       适用于所有 .NET 平台的 PDF 文档 API —— GcPDF

·       适用于所有 .NET 平台的 Word 文档 API —— GcWord

JAVA POI

下面是使用poi生成excel,读取可以参照生成的代码 public HSSFWorkbook importExcel(ListAssigneeItem list) { try { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet s = wb.createSheet(); // 设置Sheet名 wb.setSheetName(0, "assignee_item"); for (short i = 0; i list.size() + 1; i++) { // 创建行 HSSFRow row = s.createRow(i); if (i == 0) { // 设置列标题 String[] fieldName = { "管理事项ID", "管理人类型", "管理人营业机构", "产品", "投资组合", "事项起始日期", "事项内容及处理情况", "状态", "委托事项名称" }; for (short j = 0; j 9; j++) { // 创建单元格 HSSFCell cell = row.createCell(j); // 设置单元格采用的字符集,避免中文乱码 cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 为单元格赋值 cell.setCellValue(fieldName[j]); } } else { // 设置列内容 AssigneeItem ai = list.get(i - 1); String[] fieldValue = { ai.getItemManageId() + "", ai.getRoleType(), ai.getManagerBusiOrg(), ai.getProduct(), ai.getFund(), ai.getBeginDate(), ai.getItemContent(), ai.getStatus(), ai.getAssigneeItemName() }; for (short j = 0; j 9; j++) { // 创建单元格 HSSFCell cell = row.createCell(j); // 设置单元格采用的字符集,避免中文乱码 cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 为单元格赋值 cell.setCellValue(fieldValue[j]); } } } return wb; } catch (Exception e) { e.printStackTrace(); } return null; }

java poi的使用问题

需要引入的包

import org.apache.poi.hssf.usermodel.HSSFCell;

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.ss.usermodel.CellStyle;

关于javapoi介绍和java的po的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。