java对Excel的操作

Java中操作Excel有两种比较主流的工具包:JXL和POI,JXL只能操作后缀为.xls的Excel,POI可以操作后缀为.xls和.xlsx的Excel。(Excel2007之前的后缀为xls,之后的为xlsx)

一、 什么是poi
poi是Apache软件基金会的开源函数库,poi提供给java程序api对Microsoft Office格式文档操作功能
结构:
1)HSSF 提供操作后缀为xls的Excel的功能
2)XSSF 提供操作后缀为xlsx的Excel的功能
3)HWPF 提供操作Word文档的功能
4)HSLF 提供操作ppt的功能
5)HDGF 提供操作Visio格式的功能

二、POI Excel 文档结构类
1)HSSFWorkbook excel文档对象
2)HSSFSheet sheet页
3)HSSFRow excel行
4)HSSFCell excel单元格
5)HSSFFont excel字体
6)HSSFName 名称
7)HSSFDataFormat 日期格式
8)HSSFHeader sheet头
9)HSSFFooter sheet尾
10)HSSFDateUtil 日期
11)HSSFPrintSetup 打印
12)HSSFErrorConstants 错误信息表

三、代码编写
1)导入jar包
在这里插入图片描述
后两个jar用来操作后缀为xlsx的Excel

2)写入操作

	public static void main(String[] args) throws IOException {
		//1、创建excel文档对象
		HSSFWorkbook workbook = new HSSFWorkbook();
		//2、创建sheet页
		HSSFSheet sheet = workbook.createSheet("第一页");
		//3、创建头部第一行
        	//3.1列标题样式
        HSSFCellStyle colStyle = createCellStyle(workbook,(short)13);
		HSSFRow headRow = sheet.createRow(0);
		HSSFCell cell;
		String[] header = new String[] {"id","名字","年龄"};
		for (int i = 0; i < header.length; i++) {
			cell = headRow.createCell(i);
			 //加载单元格样式
			cell.setCellStyle(colStyle);
			cell.setCellValue(header[i]);
		}
		//4、填写数据
		HSSFRow dataRow;
		HSSFCell dataCell;
		for (int i = 0; i < 4; i++) {
			dataRow = sheet.createRow(i+1);
			dataCell = dataRow.createCell(0);
			dataCell.setCellValue(i+1);
			dataCell = dataRow.createCell(1);
			dataCell.setCellValue("zhy"+i);
			dataCell = dataRow.createCell(2);
			dataCell.setCellValue(20+i);
		}
		//5、写入
		OutputStream fos = new FileOutputStream("C:\\Users\\13422\\Desktop\\test.xls");
		workbook.write(fos);
		
	}

    /**
     * 
     * @param workbook
     * @param fontsize
     * @return 单元格样式
     */
    private static HSSFCellStyle createCellStyle(HSSFWorkbook workbook, short fontsize) {
        // TODO Auto-generated method stub
        HSSFCellStyle style = workbook.createCellStyle();
		style.setAlignment(HorizontalAlignment.CENTER);
        style.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
        //创建字体
        HSSFFont font = workbook.createFont();
        font.setBold(true);//加粗
        font.setFontHeightInPoints(fontsize);
        //加载字体
        style.setFont(font);
        return style;
    }

3)读取

public static void main(String[] args) throws IOException {
   	//1、从流中读取并创建excel对象
   	File file = new File("C:\\Users\\13422\\Desktop\\test.xls");
   	FileInputStream in = new FileInputStream(file);
   	HSSFWorkbook workbook = new HSSFWorkbook(in);
   	Sheet sheet = workbook.getSheet("第一页");
   	int lastRowNum = sheet.getLastRowNum();
   	for (int i = 0; i < lastRowNum+1; i++) {
   		Row row = sheet.getRow(i);
   		short lastCellNum = row.getLastCellNum();
   		for (int j = 0; j < lastCellNum; j++) {
   			Cell cell = row.getCell(j);
   			CellType cellTypeEnum = cell.getCellTypeEnum();
   			
   			switch (cellTypeEnum) {
   			case NUMERIC:
   				System.out.print(cell.getNumericCellValue()+"\t");
   				break;
   			case STRING:
   				System.out.print(cell.getStringCellValue()+"\t");
   				break;
   			default:
   				break;
   			}
   		}
   		System.out.println("");
   	}
   }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值