Java_Base9之xml、excel

一、xml(了解)
XML:Extensible Markup Language,扩展性标记语言 HTML
特点:
	可扩展性,在遵循xml语法的前提下支持自定义和修改。
<?xml version="1.0" encoding="utf-8"?>  		xml声明
<person id="1" > 								根元素,它是所有其他元素的父元素	
	<name>
		<firstname>zhang</firstname>
		<lastname>san</lastname>
	</name>
	
	<name xxx= />
	<age>23</age>
	<gender></gender>
</person>
根标签有且只能有一个。
所有元素有开始就有结束 
大小写是敏感的
嵌套使用需要注意嵌套的顺序
元素的属性值必须要用“”引起来
注释:<!--此处为注释-->

dom4j解析技术
	1、添加依赖:dom4j
	2、创建解析器SaxReader对象
	3、获取document对象
	4、获取根元素
	5、获取根元素下的子元素
二、excel(重点)
POI技术
	Apache POIApache软件基金会的开放源码函式库,POI提供APIJava程序对Microsoft Office格式档案读和写的功能。
maven坐标
	<dependency>
		<groupId>org.apache.poi</groupId>
		<artifactId>poi-ooxml</artifactId>
		<version>3.17</version>
	</dependency>

读:
	// 1、找到excel
	File file = new File("src/test/resources/student.xls");
	// 1.1、打开了excel
	Workbook workbook = WorkbookFactory.create(file);
	// 2、选择sheet
	Sheet sheet = workbook.getSheetAt(0);
	// 3、遍历row
	for (int i = 1; i <= sheet.getLastRowNum(); i++) {
		// 4、获取row
		Row row = sheet.getRow(i); // ctrl + 2 + l
		Cell idCell = row.getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK);
		idCell.setCellType(CellType.STRING);
		Cell nameCell = row.getCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK);
		nameCell.setCellType(CellType.STRING);
		Cell ageCell = row.getCell(2, MissingCellPolicy.CREATE_NULL_AS_BLANK);
		ageCell.setCellType(CellType.STRING);
		System.out.println(idCell.getStringCellValue() + "," + nameCell.getStringCellValue() + ","
				+ ageCell.getStringCellValue());
	}

写:
	// 1、找到excel
	//输入流 把文件读入到java内存中
	FileInputStream fis = new FileInputStream("src/test/resources/student.xls");
	// 1.1、打开了excel
	Workbook workbook = WorkbookFactory.create(fis);
	// 2、选择sheet
	Sheet sheet = workbook.getSheetAt(0);
	Row row = sheet.getRow(1);
	Cell cell = row.getCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK);
	cell.setCellType(CellType.STRING);
	cell.setCellValue("张三2");
	//输出流,把java内存中的内容写到文件中
	FileOutputStream fos = new FileOutputStream("src/test/resources/student.xls");
	workbook.write(fos);
	fos.close();
posted @   测试大斌  阅读(12)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示