2021-05-21 14:23

java-读写Excel文件-Apache-POI

码自答

JavaEE

(1206)

(0)

收藏

Apache POI(Poor Obfuscation Implementation)简洁版的模糊实现,是专门针对Microsoft Office格式档案读和写。是Apache通过Java编写的免费开源的跨平台的Java API。

其中

HSSF--针对Microsoft Excel档案

HWPF--针对Microsoft Word档案

HSLF--针对Microsoft PowerPoint档案

HDGF--针对Microsoft Visio档案

jar包下载

网址:http://www.apache.org

image.png

点POI

image.png

文本采用的版本是5.0  点dowloads

image.png

image.png

这两个路径,点击其中一个下载


1 写excel文件

package com.wanmait.excelTest;

import java.io.File;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.BorderStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;

public class WriteExcel {
	public void writeData()
	{
		HSSFWorkbook workbook = new HSSFWorkbook();
		//创建工作簿
		HSSFSheet sheet = workbook.createSheet("wanma1");
		//创建工作表
		HSSFRow row = sheet.createRow(4);
		//创建行
		HSSFCell cell = row.createCell(1);
		//创建列
		
		
		
		HSSFFont font = workbook.createFont();
		//创建字体
		font.setBold(true);
		//设置加粗
		font.setFontHeightInPoints((short)24);
		//设置字体大小
		
		HSSFCellStyle cellStyle = workbook.createCellStyle();
		//创建Cell样式
		cellStyle.setFont(font);
		//设置样式字体		
		cellStyle.setBorderLeft(BorderStyle.THIN);
		//设置左边框样式
		cellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
		//设置左边框颜色
		
		cell.setCellStyle(cellStyle);
		//设置Cell样式
		cell.setCellValue("张三");
		//设置该列的数据
		
		CellRangeAddress cellRange = new CellRangeAddress(4, 6, 1, 3);
		//创建合并单元格    (firstRow,lastRow,firstCell,lastCell)
		sheet.addMergedRegion(cellRange);
		//添加合并单元格
		//合并单元格中间写数据  只能是row4 col1
		
		
		File file = new File("d:/wanmait.xlsx");
		try {
			workbook.write(file);//数据写往文件
			workbook.close();//关闭工作簿
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

workbook.write()方法被重载,其中的参数也可以是OutputStream。


2 读Excel文件

package com.wanmait.excelTest;

import java.io.File;
import java.io.IOException;

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;

public class ReadExcel {
	public void readData()
	{			
		try {
			File file = new File("d:/wanmait.xlsx");
			POIFSFileSystem poifile = new POIFSFileSystem(file);
			//获取文件
			HSSFWorkbook workbook = new HSSFWorkbook(poifile);
			//打开文件 加载文件 创建工作簿
			HSSFSheet sheet = workbook.getSheetAt(0);
			//获得表  0下标
			HSSFRow row = sheet.getRow(4);
			//获得行
			HSSFCell cell = row.getCell(1);
			//获得单元格
			String value = cell.getStringCellValue();
			//获得单元格值
			System.out.println(value);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}








0条评论

点击登录参与评论