如何用Java对Excel表进行读写操作?

博主公众号: 没有腹肌的程序猿
公众号会不定期更新一些数据集,有需要的可以点点关注哦

如何用Java对Excel表进行读写操作?

1.Java读取Excel表的内容

Java读取Excel表相对来说还是比较简单的,分为3步

  • 首先是先读取文件
  • 再读取Excel表的sheet
  • 最后就是通过循环拿到数据
//使用到的包
import jxl.Sheet;
import jxl.Workbook;

String path = "";//Excel文件的路径
Workbook wrb = Workbook.getWorkbook(new File(path));
Sheet rs = wrb.getSheet(0);
//得到一共有多少列
int cols = rs.getColumns();
//得到一共有多少行
int rows = rs.getRows();
 for (int i = 0; i < rows; i++) {
 	for (int j = 0; j < cols; j++) {
         //第一个参数是列 第二个参数是行 然后根据excel对应的每行每列进行取值 第一次遍历的时候name1 第一行第一列 name2 第一行第二列 
         String name1=rs.getCell(j++, i).getContents();//默认最左边编号也算一列 所以这里得j++
         String name2=rs.getCell(j++, i).getContents();
              
     }
  }

2.通过Java将数据写入Excel表中

写入数据步骤就相对多一点了.不过我每一步都有注释,应该挺好理解的.不懂可以私信.

  • 导入相应的包
  • 首先先判断该路径的Excel表是否存在,不存在则新建一个文件
  • 定义sheet名和表头信息
  • 整理要写入Excel表中的数据

这是相对应的jar包.

	  <dependency>
		  <groupId>org.apache.poi</groupId>
		  <artifactId>poi</artifactId>
		  <version>3.17</version>
	  </dependency>
	  <dependency>
		  <groupId>org.apache.poi</groupId>
		  <artifactId>poi-ooxml</artifactId>
		  <version>3.17</version>
	  </dependency>
	  <dependency>
		  <groupId>org.apache.poi</groupId>
		  <artifactId>poi-ooxml-schemas</artifactId>
		  <version>3.17</version>
	  </dependency>
	  <dependency>
		  <groupId>org.apache.xmlbeans</groupId>
		  <artifactId>xmlbeans</artifactId>
		  <version>2.6.0</version>
	  </dependency>
	  <dependency>
		  <groupId>commons-collections</groupId>
		  <artifactId>commons-collections</artifactId>
		  <version>3.2.2</version>
	  </dependency>
	  <dependency>
		  <groupId>dom4j</groupId>
		  <artifactId>dom4j</artifactId>
		  <version>1.6.1</version>
	  </dependency>
//首先先判断该路径的Excel表是否存在,不存在则新建一个文件
String filePath = "F:\\bank\\"+bank.getName()+".xlsx";
File file = new File(filePath);
if (!file.exists()){
    file.createNewFile();
}

//定义sheet名和表头信息 这里表头信息用数组进行存储,sheet表名用List存储
String title[] = {"姓名","性别","年龄"};
List<String> sheetList = new ArrayList<>();
sheetList.add("没有腹肌的程序猿");

//整理要写入Excel表中的数据 一般一行就是一个对象,因此我们要写入Excel表的对象字段先存到一个数组中,再把多个对象信息存储到List中.
List<String[]> arrayList = new ArrayList<>();
//这里假设的数据 userList 使用过程中记得换成自己的数据集
for (int i = 0; i < userList.size(); i++) {
    //这里定义数组大小根据自己需要存多少字段进行决定
    String userArr[] = new String[3];
    user = userList.get(i);
    userArr[0] = user.getName();
    userArr[1] = user.getSex();
    userArr[2] = user.getAge();
    //将数组存储arrayList中
    arrayList.add(userArr);
}
createExcel(filePath,sheetList,title,arrayList);
public void createExcel(String filePath,List<String> sheetNames,String titleRow[],List<String[]> arrayList){
    XSSFWorkbook xWorkbook = new XSSFWorkbook();
     //新建文件
	FileOutputStream fileOutputStream = null;
	XSSFRow row = null;
	//HSSFRow row = null;
	try {

		XSSFCellStyle cellStyle = xWorkbook.createCellStyle();
		cellStyle.setAlignment(HorizontalAlignment.LEFT);
		cellStyle.setVerticalAlignment(VerticalAlignment.BOTTOM);
		//添加Worksheet(不添加sheet时生成的xls文件打开时会报错)
		for(int i = 0; i<sheetNames.size(); i++){
			XSSFSheet sheet = xWorkbook.createSheet(sheetNames.get(i));
			//添加表头
			row = xWorkbook.getSheet(sheetNames.get(i)).createRow(0);
            //这是设置单元格的大小
			row.setHeight((short)(20*20));
			
			//插入表头
			for (short j = 0; j < titleRow.length; j++) {
				XSSFCell cell = row.createCell(j);
				cell.setCellValue(titleRow[j]);
				cell.setCellStyle(cellStyle);
			}
			//插入内容
			for (int k = 10; k<arrayList.size();k++) {
				XSSFRow contentRow = null;
				contentRow = xWorkbook.getSheet(sheetNames.get(i)).createRow(k+1);
				String[] array = arrayList.get(k);
				for (int j = 0; j < array.length; j++) {
					XSSFCell cell = contentRow.createCell(j);
					cell.setCellValue(array[j]);
					cell.setCellStyle(cellStyle);
				}
			}
			fileOutputStream = new FileOutputStream(filePath);
			xWorkbook.write(fileOutputStream);
		}
	}catch (IOException e){
		e.printStackTrace();
	}finally {
		if (fileOutputStream != null) {
			try {
				fileOutputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
  • 5
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java可以使用Apache POI库来进行Excel读写操作。通过导入相关的类和方法,可以实现对Excel文件的读取和写入。具体步骤如下: 1. 导入Apache POI库的相关类和方法,例如`import org.apache.poi.ss.usermodel.*;`和`import org.apache.poi.xssf.usermodel.XSSFWorkbook;`。 2. 创建一个`Workbook`对象,用于Excel文件。可以使用`XSSFWorkbook`类来创建一个新的Excel文件,或者使用`WorkbookFactory.create()`方法来打开一个已存在的Excel文件。 3. 获取Excel文件中的Sheet对象,可以使用`getSheet()`方法来获取指定名称的Sheet,或者使用`getSheetAt()`方法来获取指定索引的Sheet。 4. 遍历Sheet中的每一行和每一列,可以使用`getRow()`方法来获取指定行号的Row对象,然后使用`getCell()`方法来获取指定列号的Cell对象。 5. 对于读取操作,可以使用Cell对象的`getStringCellValue()`、`getNumericCellValue()`等方法来获取单元格的值。 6. 对于写入操作,可以使用Cell对象的`setCellValue()`方法来设置单元格的值。 7. 最后,通过`FileOutputStream`将Workbook对象写入到文件中,完成Excel的写入操作。 需要注意的是,以上只是一个简单的示例,实际应用中可能需要根据具体需求进行更复杂的操作。可以根据自己的需求,对代码进行改进和填充,以实现更复杂的程序设计。掌握好这些基本操作,可以更加轻松自如地对Excel进行读写操作,提高工作效率。希望对您有所帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [Java读写excel文件代码](https://blog.csdn.net/Bagging/article/details/123731452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值