`
kt431128
  • 浏览: 39308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java POI Excel( pio:纯java操作excel的api )

    博客分类:
  • java
 
阅读更多

POI官方网址:http://poi.apache.org/
POI的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Excel XLS,PowerPoint PPT,Word DOC,Outlook MSG,Excel XLSX等,下面就简单讲下poi处理excel的一些内容。

下面的jar包来源于当前最新的poi 3.6版本。

1.poi来生成excel

package com.test.poi;

import java.io.FileOutputStream;
import java.util.Date;

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.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
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.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;

public class WriteExcel {

public static void main(String[] args) throws Exception {
    // 创建Excel的工作书册 Workbook,对应到一个excel文档
    HSSFWorkbook wb = new HSSFWorkbook();

    // 创建Excel的工作sheet,对应到一个excel文档的tab
    HSSFSheet sheet = wb.createSheet("sheet1");

    // 设置excel每列宽度
    sheet.setColumnWidth(0, 4000);
    sheet.setColumnWidth(1, 3500);

    // 创建字体样式
    HSSFFont font = wb.createFont();
    font.setFontName("Verdana");
    font.setBoldweight((short) 100);
    font.setFontHeight((short) 300);
    font.setColor(HSSFColor.BLUE.index);

    // 创建单元格样式
    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    style.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    // 设置边框
    style.setBottomBorderColor(HSSFColor.RED.index);
    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    style.setBorderRight(HSSFCellStyle.BORDER_THIN);
    style.setBorderTop(HSSFCellStyle.BORDER_THIN);

    style.setFont(font);// 设置字体

    // 创建Excel的sheet的一行
    HSSFRow row = sheet.createRow(0);
    row.setHeight((short) 500);// 设定行的高度
    // 创建一个Excel的单元格
    HSSFCell cell = row.createCell(0);

    // 合并单元格(startRow,endRow,startColumn,endColumn)
    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));

    // 给Excel的单元格设置样式和赋值
    cell.setCellStyle(style);
    cell.setCellValue("hello world");

    // 设置单元格内容格式
    HSSFCellStyle style1 = wb.createCellStyle();
    style1.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm:ss"));

    style1.setWrapText(true);// 自动换行

    row = sheet.createRow(1);

    // 设置单元格的样式格式

    cell = row.createCell(0);
    cell.setCellStyle(style1);
    cell.setCellValue(new Date());

    // 创建超链接
    HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
    link.setAddress("
http://www.baidu.com");
    cell = row.createCell(1);
    cell.setCellValue("百度");
    cell.setHyperlink(link);// 设定单元格的链接

    FileOutputStream os = new FileOutputStream("e:\\workbook.xls");
    wb.write(os);
    os.close();
}

}

2.poi读取excel
package com.test.poi;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

import org.apache.poi.hssf.extractor.ExcelExtractor;
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.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

public class ReadExcel {

public static void main(String[] args) throws Exception {
    HSSFWorkbook wb = null;
    POIFSFileSystem fs = null;
    try {
      fs = new POIFSFileSystem(new FileInputStream("e:\\workbook.xls"));
      wb = new HSSFWorkbook(fs);
    } catch (IOException e) {
      e.printStackTrace();
    }

    HSSFSheet sheet = wb.getSheetAt(0);
    HSSFRow row = sheet.getRow(0);
    HSSFCell cell = row.getCell(0);
    String msg = cell.getStringCellValue();
    System.out.println(msg);
}
public static void method2() throws Exception {

    InputStream is = new FileInputStream("e:\\workbook.xls");
    HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));

    ExcelExtractor extractor = new ExcelExtractor(wb);
    extractor.setIncludeSheetNames(false);
    extractor.setFormulasNotResults(false);
    extractor.setIncludeCellComments(true);

    String text = extractor.getText();
    System.out.println(text);
}

public static void method3() throws Exception {
    HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("e:\\workbook.xls"));
    HSSFSheet sheet = wb.getSheetAt(0);

    for (Iterator<Row> iter = (Iterator<Row>) sheet.rowIterator(); iter.hasNext();) {
      Row row = iter.next();
      for (Iterator<Cell> iter2 = (Iterator<Cell>) row.cellIterator(); iter2.hasNext();) {
        Cell cell = iter2.next();
        String content = cell.getStringCellValue();// 除非是sring类型,否则这样迭代读取会有错误
        System.out.println(content);
      }
    }
}
}

注:HSSFWorkbook,XSSFWorkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。

在实际应用中,要对excel文件进行判断,该用哪个workbook来对其进行解析处理,而且,通常把这些方法都做了相应封装,使其更面向对象,上例只是main方法的简单示例而已,仅供参考!

分享到:
评论

相关推荐

    POI的EXCEL导出,自动换行

    Apache POI项目提供了一系列用于读写Microsoft Office格式文件的Java API,其中包括对Excel的支持。本文将详细介绍如何使用Apache POI实现Excel的导出功能,并在此基础上实现自动换行。 #### 一、Apache POI简介 ...

    PIO的EXCEL的写入和导出

    Apache POI是一个广泛使用的开源项目,它提供了Java API来创建、修改和显示Microsoft Office格式的文件,包括Excel。通过Apache POI,我们可以创建新的Excel工作簿,添加工作表,设置单元格样式,以及填充数据。在...

    java poi_3.15依赖库

    在Java世界中,如果你需要对Excel进行操作,比如读取、写入或者修改数据,Java POI是一个非常重要的工具。这个"java poi_3.15依赖库"就是POI项目的3.15版本,提供了对Excel文件处理的所有必需类和方法。 在描述中...

    excel转换html类(Excel2HtmlUtil的JAVA类)

    Apache POI提供了丰富的API,使得开发者能够使用Java处理Excel文件的各种操作,如读取、写入、修改等。描述中还提到,这个资源来自于CSDN(Chinese Software Developer Network)网上平台,一个中国程序员交流和学习...

    java实现poi模板生成PPT文件代码

    Apache POI 是一个开源项目,它提供了Java API来处理Microsoft Office格式的文件,如XLS(Excel),DOC(Word)和PPT。在我们的场景中,我们将专注于PPT文件的创建。 2. **POI与PPT文件结构**: PowerPoint文档由...

    java poi jar 用于解析office word和excel

    在使用Java POI时,你可以通过以下步骤来解析和操作Word和Excel文件: 1. **添加依赖**:首先,你需要在你的项目中引入Apache POI的相关库。对于Maven项目,可以通过添加以下依赖到pom.xml文件来获取: ```xml ...

    POI批量导入导出

    【标题】:"POI批量导入导出" ...总的来说,Apache POI是一个强大而灵活的工具,能够帮助Java开发者实现对Excel文件的高效批量操作,满足各种企业级应用的需求,尤其是在数据导入导出、报表生成和跨平台协作的场景下。

    java使用poi进行excle读取和输出,myeclipse源码

    Java中的Apache POI库是处理Microsoft Office格式文件(如Excel)的强大工具,尤其适用于在程序中进行读取、写入和操作Excel数据。本项目基于Java的MyEclipse集成开发环境,提供了完整的源代码示例,帮助开发者了解...

    poi导入导出excel所需jar

    标题"poi导入导出excel所需jar"和描述"java 使用poi导入导出excel所需的最新jar包"都指向了使用Apache POI进行Excel操作的关键依赖——POI相关的JAR文件。 Apache POI项目始于2001年,旨在为开源社区提供一个API,...

    PIO 开发工具包

    Apache POI是Java领域内广泛使用的库,用于读取、写入和修改MS Office格式的文件,包括Word、Excel和PowerPoint等。 **Apache POI介绍** Apache POI是一个开源项目,它提供了一套API,允许程序员用Java语言来创建...

    easyuiPoi导出Excel工具类封装(支持合并单元格)

    EasyUIPoI是一款基于Apache POI的Java工具库,专门用于简化Excel的导出操作,尤其在处理模板和合并单元格方面提供了便利。这个库主要适用于那些需要在Web应用中生成Excel报告或导出数据的场景,比如数据分析、报表...

    poi导入excel的demo

    Apache POI 是Java平台上的一个API,它允许开发者创建、修改和显示MS Office格式的文件。对于Excel,POI提供了HSSF(Horrible Spreadsheet Format)用于处理.xls文件,而XSSF(XML Spreadsheet Format)则用于处理....

    poi-4.0.0.rar

    在Java环境中,当你需要读取、写入或操作Excel文件(包括.xls和.xlsx格式)时,Apache POI库成为了不可或缺的工具。标题中的"poi-4.0.0.rar"指的是该版本的Apache POI库的压缩文件,它包含了运行相关Java程序所需的...

    poi导入(jar包+源码)

    在Java环境中,Apache POI提供了一种强大的API,允许开发者读取、写入和修改这些文件。本资源包含了一个 poi 的jar包以及相关的源码,方便进行Excel文件的导入操作。 首先,我们要理解Apache POI中的核心类...

    poi4.0_all_9_jars.rar

    1. **Java导出Excel的组件**:Apache POI提供了API,使得Java程序员能够创建、修改和读取Excel文件。它支持老版的.BIFF8格式(XLS)以及较新的OOXML格式(XLSX)。这在数据处理、报表生成、数据分析等领域非常有用,...

    pio的jar包

    标题中的“pio的jar包”实际上指的是Apache POI项目,这是一个用于处理Microsoft Office格式文档的Java库,特别是针对Excel(.xlsx, .xls)文件。Apache POI提供了一组API,使得开发人员能够轻松地在Java应用程序中...

    POI按word模版生成合同并生成PDF(修复生成pdf功能)

    在IT行业中,Apache POI是一个广泛使用的库,主要用于读取、写入以及操作Microsoft Office格式的文件,如Word、Excel和PowerPoint。本项目聚焦于使用Apache POI库按照预设的Word模板生成合同,并进一步将生成的合同...

    poi.jar资源

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。这个"poi.jar资源"包含的是Apache POI的核心组件,版本为3.16,能够帮助开发者在Java应用程序中读取、写入以及...

    java编程excel导入MySQL.pdf

    综上所述,Java编程中将Excel导入MySQL涉及到的主要知识点有:使用Apache POI读取Excel文件、遍历单元格、处理单元格数据、构建SQL语句以及数据库操作。在实际项目中,还需要考虑数据清洗、错误处理、性能优化等问题...

    poi相关架包

    【标题】:“poi相关架包”指的是Apache POI项目中的必备库文件,这些库使得开发者能够在Java环境中读取、写入以及操作Microsoft Office格式的文件,如Excel、Word和PowerPoint。 【描述】:Apache POI是一个开源...

Global site tag (gtag.js) - Google Analytics