poi 学习之 使用 Apche poi 简单读写 Excel_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > poi 学习之 使用 Apche poi 简单读写 Excel

poi 学习之 使用 Apche poi 简单读写 Excel

 2014/9/10 19:00:08  zhoushijie5230  程序员俱乐部  我要评论(0)
  • 摘要:使用Apchepoi简单读写Excel首先:毋庸置疑,我们得去官网下载POI,地址:http://jakarta.apache.org/poi/如下图(由于本人英语不是很好,初学时找下载的地方找了好长时间,所以直接把图贴出来,方便下载使用):点击Download跳转:下载poi-bin-3.11-beta2-20140822.zip解压,并把jar包引入到项目中;至此,我们的第一步准备工作就完成了(是不是灰常简单呢)。在项目中想把Excel数据导入数据库中或者是将数据库中的数据导出为Excel
  • 标签:excel 学习 使用

使用 Apche poi 简单读写 Excel

?

?

首先:毋庸置疑,我们得去官网下载POI,地址:http://jakarta.apache.org/poi/


如下图(由于本人英语不是很好,初学时找下载的地方找了好长时间,所以直接把图贴出来,方便下载使用):

?

点击Download跳转:

?

下载poi-bin-3.11-beta2-20140822.zip解压,并把jar包引入到项目中;至此,我们的第一步准备工作就完成了(是不是灰常简单呢)。

?

在项目中想把 Excel 数据导入数据库中或者是将数据库中的数据导出为 Excel,POI 是个不错的选择。

?

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

?

1)HSSF- 提供读写Microsoft Excel格式档案的功能,Excel 2003(.xls)。
2)XSSF - 提供读写Microsoft Excel OOXML格式档案的功能,Excel 2007(.xlsx)。
3)HWPF - 提供读写Microsoft Word格式档案的功能。
4)HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
5)HDGF - 提供读写Microsoft Visio格式档案的功能。

?

下面是两个简单的Excel读写功能:

?

XLSReader.java

class="java">package com.poi;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.xssf.usermodel.XSSFWorkbook;
/**
 * excel读取
 * @author Snow
 * HSSF用于2003版即以  .xls结尾
 * XSSF用于2007版    以   .xlsx结尾
 */
public class XLSReader {
	public static List readExcelData(String url)throws Exception{
		
		// 从XLSX/ xls文件创建的输入流
		FileInputStream fis = new FileInputStream(url);
		List hospitalList = new ArrayList();
		
		// 创建工作薄Workbook
		Workbook workBook = null;
		
		// 读取2007版,以    .xlsx 结尾
		if(url.toLowerCase().endsWith("xlsx")){
			try {
				workBook = new XSSFWorkbook(fis);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		// 读取2003版,以   .xls 结尾
		else if(url.toLowerCase().endsWith("xls")){
			try {
				workBook = new HSSFWorkbook(fis);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		//Get the number of sheets in the xlsx file
		int numberOfSheets = workBook.getNumberOfSheets();
		
		// 循环 numberOfSheets
		for(int sheetNum = 0; sheetNum < numberOfSheets; sheetNum++){
			
			// 得到 工作薄 的第 N个表
			Sheet sheet = workBook.getSheetAt(sheetNum);
			Row row;
			String cell;
			for(int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++){
				// 循环行数
				row = sheet.getRow(i);
				for(int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++){
					// 循环列数
					cell = row.getCell(j).toString();
					hospitalList.add(cell);
//					System.out.println(cell+"\t");
				}
			}
		}
		return hospitalList;
	}
	public static void main(String[] args)throws Exception {
		List list = readExcelData("E:/hospital.xlsx"); 
		System.out.println(list);
	}
}
? XLSWriter.java
package com.poi;

import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
 * 
 * @author Snow
 * 简单的写入 excel
 * HSSF实现 excel 2003(以 .xls 结尾的文件)
 * XSSF实现 excel 2007(以 .xlsx 结尾的文件)
 */
public class XLSWriter {
	public static void main(String[] args)throws Exception{
		// 创建工作薄
		XSSFWorkbook workBook = new XSSFWorkbook();
		// 在工作薄中创建一工作表
		XSSFSheet sheet = workBook.createSheet();
		// 在指定的索引处创建一行
		XSSFRow row = sheet.createRow(0);
		// 在指定的索引处创建一列(单元格)
		XSSFCell code = row.createCell(0);
		// 定义单元格为字符串类型
		code.setCellType(XSSFCell.CELL_TYPE_STRING);
		// 在单元格输入内容
		XSSFRichTextString codeContent = new XSSFRichTextString("医院编号");
		code.setCellValue(codeContent);
		XSSFCell city = row.createCell(1);
		city.setCellType(XSSFCell.CELL_TYPE_STRING);
		XSSFRichTextString cityContent = new XSSFRichTextString("城市");
		city.setCellValue(cityContent);
		// 新建一输出流并把相应的excel文件存盘
		FileOutputStream fos = new FileOutputStream("E:/hos.xlsx");
		workBook.write(fos);
		fos.flush();
		//操作结束,关闭流
		fos.close();
		System.out.println("文件生成");
	}
}
供初学者参考 原文地址:http://blog.csdn.net/u014011236/article/details/39182051
发表评论
用户名: 匿名