1. 12 Java之Excel文件读写

    

package com.lujier.readExcel;

import  java.util.List;
import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ReadExcelPOI {
	public static void main(String[] args) {

		 String file_path = "src/test/resources/students1.xlsx";
		 try {
			 // 1. 打开文件(流读取excel文件)
			 FileInputStream inputs = new FileInputStream(file_path);
		     // 2.创建excel对象workbook(工作薄)
			 //   多态Workbook(Excel对象),即可接收2003版本,也可2007版本
			 Workbook wb = WorkbookFactory.create(inputs);
			 // 3. 获取sheet(表单)
		     //	 Sheet sh = wb.getSheetAt(0); // 通过索引获取表单
//			 Sheet sh = wb.getSheet("sheet1");
			 Sheet sh = wb.getSheetAt(0);


			 // 4.获取row(行)
//			 sh.getRow(0);
			 // 4.1 获取最大行号: 索引(0开始)
			 int lastRowNum = sh.getLastRowNum();
			 System.out.printf("lastRowNum=%d",lastRowNum);
		     // 4.2 循环所有的行
			 for(int i=0;i<=lastRowNum;i++) {
				 // 4.3  获取当前行
				 Row row = sh.getRow(i);
				 // 4.4  获取最大列号: 长度
				 int lastCellNum = row.getLastCellNum();
				 System.out.printf("lastCellNum=%d\n",lastCellNum);
				 // 4.5 遍历每行所有的单元格
				 for(int j=0;j<lastCellNum;j++) {
					 // 5. 获取cell(单元格)
					 Cell cell = row.getCell(j, MissingCellPolicy.CREATE_NULL_AS_BLANK);
					 // 5.1 设置单元格值类型
					 cell.setCellType(CellType.STRING); 
					 // 5.2 获取单元格的内容
					 String cellValue = cell.getStringCellValue();
					 System.out.printf("(%d,%d)=%s:",i,j,cellValue);
				 }
				 System.out.printf("\n");
				
			 }
			// 6. 关闭文件流
			inputs.close();
		 
		 } catch(Exception e) {
			 e.printStackTrace();	 
		 } 
		 	 
  }

}

package com.lujier.readExcel;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
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.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;

/**
* TODO
*   @File:  WriteExcelPOI.java
 *  @Author: Lujier          @SINCE: 2020年8月12日 下午9:59:07
 *  @Phone: 15934815829      @Email: 15934915829@163.com
 * */
public class WriteExcelPOI {
	public static void main(String[] args) {
		 String file_path = "src/test/resources/students1.xlsx";
		 try {
			 // 1. 打开文件(流读取excel文件)
			 FileInputStream inputs = new FileInputStream(file_path);
		     // 2.创建excel对象workbook(工作薄)
			 //   多态Workbook(Excel对象),即可接收2003版本,也可2007版本
			 Workbook wb = WorkbookFactory.create(inputs);
			 // 3. 获取sheet(表单)
		     //	 Sheet sh = wb.getSheetAt(0); // 通过索引获取表单
//			 Sheet sh = wb.getSheet("sheet1");
			 Sheet sh = wb.getSheetAt(0);
			 // 4. 获取指定行:第2行
			 int row_num = 2;
			 Row row =  sh.getRow(row_num);
			 // 5. 获取指定列,获得cell对象
			 int column_num = 2;
			 Cell cell = row.getCell(column_num, MissingCellPolicy.CREATE_NULL_AS_BLANK);
			 // 5.1 设置单元格值类型
			 cell.setCellType(CellType.STRING); 
			 // 5.2 获取单元格的内容
//			 String cellValue = cell.getStringCellValue();
//			 System.out.printf("(%d,%d)=%s:",row_num,column_num,cellValue);	 
             // 5.3 单元格值设置: 修改
			 cell.setCellValue("女女");
			 // 6. 回写Excel(单元格内容修改也就是工作薄内容改变,所以工作薄对输出流文件写操作)
			 
			 FileOutputStream out = new FileOutputStream(file_path);
			 wb.write(out);
			// 7. 关闭文件流		
			inputs.close();
			out.close();
		 
		 } catch(Exception e) {
			 e.printStackTrace();	 
		 } 
		 	 
 }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值