Java读写Excel简介
作者:曹祺
Email:Qi.Cao@Sun.Com
Blog: http://blogs.sun.com/greysh 
本文难度:入门 
本文链接: http://developers.sun.com.cn/blog/functionalca/entry/java%E8%AF%BB%E5%86%99excel%E7%AE%80%E4%BB%8B  
源代码下载: http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Excel.zip  
JXL官方网站: http://www.andykhan.com/jexcelapi/
HSSF官方网站: http://poi.apache.org/spreadsheet/

简介
Helloworld

简介
Excel 虽然最常用的电子表格软件之一,但是由于微软并未对Excel开源,因此给Java开发中带来一些不便,除了用JNI去调用本地方法,另外一种方法就是用 Java框架去解析Excel。开发中常用的框架为JXL,是Andy Khan开发的,详情可以在他的个人主页看到http://www.andykhan.com/,另外一个便是Apache和微软联合开发的,是属于APACHE POI(http://poi.apache.org/spreadsheet/) 项目的子项目。就笔者感觉,Andy Khan开发的比较小巧,适合小项目,而且调用比apache poi的hssf要方便。但是如果要使用很多高级功能的话,还是建议使用Apache的POI.本教程为入门教程,因此主要介绍调用的流程,如果想了解如 何设置单元格样式,可以访问其官方网站。

Helloworld

完整代码如下,开发环境:JXL为JExcelApi v2.6.9 .POI为poi-3.5-beta5-20090219.jar
由于本文主要介绍如何讲指定的数据读取和写入到指定的单元格,因此定义了个接口,包含读取和写入两个方法。接口如下

package com.greysh.excel.service;

public interface ExcelService {
 
 public void write(int colum, int row, String content) throws Exception;

public String read(int colum, int row)throws Exception;
}

然后用JXL读取的话,类ExcelUtils来自的包为com.greysh.excel.jxl

package com.greysh.excel.jxl;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import com.greysh.excel.service.ExcelService;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExcelUtils implements ExcelService{
 private String path = "D://Excel.xls";
 
 public static void main(String[] args) throws Exception {
  ExcelUtils excelUtils = new ExcelUtils();
  String content = "Hello World";
  excelUtils.write(2, 3, content);
  String newContent = excelUtils.read(2, 3);
  System.out.println(newContent);

}

@Override
 public void write(int colum, int row, String content) throws Exception {
  FileOutputStream fileOutputStream = new FileOutputStream(path);
  WritableWorkbook writableWorkbook = Workbook
    .createWorkbook(fileOutputStream);
  WritableSheet writableSheet = writableWorkbook.createSheet("Excel", 0);
  Label label = new Label(colum, row, content);
  writableSheet.addCell(label);
  writableWorkbook.write();
  writableWorkbook.close();
  fileOutputStream.close();
 }

@Override
 public String read(int colum, int row) throws Exception {
  FileInputStream fileInputStream = new FileInputStream(path);
  Workbook workbook = Workbook.getWorkbook(fileInputStream);
  Sheet sheet = workbook.getSheet(0);
  Cell cell = sheet.getCell(colum, row);
  String content = cell.getContents();
  workbook.close();
  fileInputStream.close();
  return content;
 }
}
如果用apache的poi读取,为com.greysh.excel.poi的ExcelUtils类
package com.greysh.excel.poi;

import java.io.FileInputStream;
import java.io.FileOutputStream;
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;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import com.greysh.excel.service.ExcelService;

public class ExcelUtils implements ExcelService {

private String path = "D://ExcelPOI.xls";

public static void main(String[] args) throws Exception {
  ExcelUtils excelUtils = new ExcelUtils();
  String content = "Hello Worlds";
  excelUtils.write(2, 3, content);
  String newContent = excelUtils.read(2, 3);
  System.out.println(newContent);
 }

@Override
 public void write(int colum, int row, String content) throws Exception {
  Workbook workbook = new HSSFWorkbook();
  Sheet sheet = workbook.createSheet("Excel");
  Row rows = sheet.createRow(row);
  Cell cell = rows.createCell(colum);
  cell.setCellValue("Hello World");
  FileOutputStream fileOut = new FileOutputStream(path);
  workbook.write(fileOut);
  fileOut.close();

}

@Override
 public String read(int colum, int row) throws Exception {
  Workbook workbook = new HSSFWorkbook(new POIFSFileSystem(
    new FileInputStream(path)));
  Sheet sheet = workbook.getSheetAt(0);
  Row rows = sheet.getRow(row);
  Cell cell = rows.getCell(colum);
  String content = cell.getStringCellValue();
  return content;
 }
}
此段代码修改自Apache的官方demo,对高级样式进行了精简,如欲了解高级功能,例如单元格样式,可以访问http://poi.apache.org/spreadsheet/quick-guide.html

对比以上两种方式,我们可以总结出调用流程如下

1打开工作文件Workbook,在此之前先用java的io流创建或者读取文件
2.打开工作表Sheet
3.读行,然后读列。不过读者请注意,行和列是从零开始的
4.取得数据进行操作

本代码运行后会在控制台打印出Hello World,同时D盘会生成Excel文件
如果想了解如何设置单元格的显示样式或者让单元格的内容的数据格式不只是String,可以访问JXL和POI的官方网站。

Java读写Excel简介相关推荐

  1. java读写excel文件poi_Java利用POI读写Excel文件工具类

    本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...

  2. Java读写Excel原来这么简单

    前言 相信现在很多搞后端的同学大部分做的都是后台管理系统,那么管理系统就肯定免不了 Excel 的导出导入功能,今天我们就来介绍一下 Java 如何实现 Excel 的导入导出功能. Java领域解析 ...

  3. Java读写Excel之HSSFWorkbook、XSSFWorkbook、Workbook

    Java读写Excel之HSSFWorkbook.XSSFWorkbook.Workbook 引入maven依赖 <dependency><groupId>org.apache ...

  4. java读写excel表格数据

    java读写excel表格数据 java读写excel表格数据 excel类 package excel;import java.io.File; import jxl.Cell; import jx ...

  5. Java操作Excel之POI:java读写excel文件以及打印设置

    Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...

  6. java读写EXCEL之poi

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能. Apache POI ...

  7. Java读写Excel之POI超入门(转)

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.Apache POI ...

  8. java读写Excel工具类

    本项目采用maven工程,使用poi技术去读取excel表格. 所需jar包为: <!-- https://mvnrepository.com/artifact/org.apache.poi/p ...

  9. 手把手教你用java读写excel表格文件(POI,EasyExcel)

    视频链接-我是学习之星我为狂神打call~ [狂神说Java]POI及EasyExcel一小时搞定通俗易懂 想给项目添加一个表格导入导出功能吗? "xxx管理系统"没有导入导出功能 ...

最新文章

  1. async 队列性能测试
  2. 根据坐标点鼠标 不移动_工地基本功:别管一致不一致,CAD坐标一次全部导入...
  3. 如何只使用标签来构建一个简单的电影推荐系统
  4. matlab中的scramble函数,matlab 中 hold on 和hold off的使用
  5. 在vue单页应用中使用jquery
  6. 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式
  7. 前端学习(2767):下拉刷新的学习
  8. 什么是 Apache Sentry , Apache Sentry 介绍
  9. 【Android命令行】jarsigner参数详解
  10. MMD中的VMD文件格式详解
  11. [有人@你] BIM建模助手顺手搞了个活动
  12. with open新创建的文件在哪找_Python 基本功: 4. 读写文件
  13. 嵌入式技术及应用基础实验
  14. Linux下如何彻底删除用户
  15. 《游戏编程》第一部 基础篇
  16. 分布式电源接入对配电网影响的研究(Matlab代码实现)
  17. 编程的97件事——1、谨慎行事
  18. 膏肓痛的自疗法-------为久坐者
  19. 【操作系统】SMP vs NUMA vs MPP 架构简介
  20. INET_ADDRSTRLEN

热门文章

  1. 曾记否,到中流击水,浪遏飞舟
  2. 股票接口L2值得用吗?
  3. mysql去掉字段中的所有空格
  4. Linux系统中的链接文件
  5. Centos7+puppet+foreman,实现部署OS
  6. 企业网络营销发展前景趋势分析
  7. 数据结构课程设计农夫过河
  8. hive解析json数组
  9. ListView学习(一)
  10. 32岁大叔的转行之路!