Apache POI工具对excel文件操作的简单使用

今天帮一个同学,处理txt文件数据,最后把数据持久化到excel表格中,其中用到了开源工具包POI,稍微学习了下,mark。。。

1、首先是一个创建xls文件的demo

package test;

import java.io.FileOutputStream;
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;

public class CreateXL {

	public static void main(String argv[]) throws IOException {
		String outputFile = "E:/hgl/test/test.xls";
		HSSFWorkbook workbook = new HSSFWorkbook();
		HSSFSheet sheet1 = workbook.createSheet("sheet1");
		System.out.println(sheet1.getLastRowNum());
		HSSFRow row = sheet1.createRow(0);
		HSSFCell cell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC);
		cell.setCellValue("增加值");

		HSSFSheet sheet2 = workbook.createSheet("sheet2");
		sheet2.createRow(0).createCell(0).setCellValue("bababab");

		FileOutputStream fOut = new FileOutputStream(outputFile);
		workbook.write(fOut);
		fOut.flush();
		fOut.close();
		workbook.close();
	}
}
2、这个是根据自己需求的数据处理demo。(获取文件夹下每个文件的若干特定行(根据第一列确定)的若干特定列(自己制定)的数据)
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

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;

public class XlsUtil {

	public static void main(String[] args) throws IOException {
		int count = 0;
		// 文件输出流
		FileOutputStream fOut = new FileOutputStream("e:/hgl/test/result.xls");
		// 工作簿对象
		HSSFWorkbook workbook = new HSSFWorkbook();
		// 遍历文件夹中的文件
		File fileDir = new File("e:/hgl/test/");
		File[] files = fileDir.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				return pathname.getAbsolutePath().endsWith(".TXT");
			}
		});
		// 按名称排序
		Arrays.sort(files);
		for (File file : files) {
			System.out.println("开始处理第" + (++count) + "个文件:" + file.getName());
			BufferedReader br = new BufferedReader(new FileReader(file));
			HSSFSheet sheet = null;
			HSSFRow row = null;
			String[] arrStr = null;
			String line = null;
			while ((line = br.readLine()) != null) {
				arrStr = line.split("\\s+");
				String sheetName = arrStr[0];
				if (sheetName.equals("54916") || sheetName.equals("57083") || sheetName.equals("57290")
						|| sheetName.equals("57297") || sheetName.equals("58027") || sheetName.equals("58040")
						|| sheetName.equals("58102") || sheetName.equals("58221") || sheetName.equals("58251")
						|| sheetName.equals("58314")) {
					// 新建或获取相应工作表sheet
					if (workbook.getSheet(sheetName) == null) {
						sheet = workbook.createSheet(sheetName);
					} else {
						sheet = workbook.getSheet(sheetName);
					}
					// 设置行数据
					row = sheet.createRow(sheet.getLastRowNum() + 1);
					row.createCell(0, HSSFCell.CELL_TYPE_STRING).setCellValue(arrStr[4]);
					row.createCell(1, HSSFCell.CELL_TYPE_STRING).setCellValue(arrStr[5]);
					row.createCell(2, HSSFCell.CELL_TYPE_STRING).setCellValue(arrStr[6]);
					row.createCell(3, HSSFCell.CELL_TYPE_STRING).setCellValue(arrStr[9]);
				}
			}
			br.close();
		}
		workbook.write(fOut);
		fOut.flush();
		fOut.close();
		workbook.close();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值