java读取excel文件获取数据

本文测试用
第一步:确定你的excel文件是可修改的,而不是只读的(这个问题困了我许久,检验方法 随便输入一些数据保存一些看是否能保存,如果不能这会提示你备份,那就好了,把备份考到项目根文件夹里,即src并列的)
第二步贴下面的代码
package com.testExcel;
// 读取Excel的类
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class readExcel {
public static void main(String args[]) {
try {
System.out.println("begini");
Workbook book = Workbook.getWorkbook( new File( "test.xls" ));
// 获得第一个工作表对象
Sheet sheet = book.getSheet( 0 );
// 得到第一列第一行的单元格
for(int i=0;i<750;i++){
Cell cell1 = sheet.getCell( 0 , i );//前一个参数代表列,后一个参数代表行
String result = cell1.getContents();
System.out.println("第一列,第"+(i+1)+"行"+result);

}
book.close();
System.out.println("end");
} catch (Exception e) {
System.out.println(e);
}
}
}
第三部:问题提示
假如你的execel中,存在上下的合并文件夹,比如第一列中前几个的单元格合并了,那么结果如下
java读取excel文件获取数据其中前几行上下方向的已经被合并,但还是会循环出来
而数据这属于左上方的单元格
当横向和上下方合并单元格时
数据属于左上方单元格,其他单元格为空
即如下
java读取excel文件获取数据

java读取excel文件获取数据
java读取excel文件获取数据
由图可以看到,xml文件中低3列和第四列中的,(频道名称,3) (频道名称,4) (频道名称,5)
(频道url,3) (频道url,4) (频道url,5)这6个单元格合并为了一个,但数据属于 (频道名称,3)这个单元格,其它的单元格均显示为空
Java中,我们可以使用Apache POI库来读取和操作Excel文件。POI是一个流行的API,用于处理Microsoft Office格式的文档,包括Excel (.xls) 和 .xlsx 格式。 以下是使用Apache POI简单步骤来读取、修改并保存Excel文件的内容: 1. **添加依赖**: 首先需要在项目中引入Apache POI依赖,如果是Maven项目,可以在pom.xml中添加: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.x.x</version> <!-- 最新版本 --> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.x.x</version> <!-- 如果操作.xlsx 文件,需要此依赖 --> </dependency> ``` 2. **创建`Workbook`和`Sheet`**: 使用`XSSFWorkbook`打开.xls文件,或`XSSFWorkbook`或`SXSSFWorkbook`打开.xlsx文件: ```java FileInputStream fis = new FileInputStream("path_to_your_file.xlsx"); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 ``` 3. **读取单元格**: 可以通过索引来获取单元格值,如`String cellValue = sheet.getRow(i).getCell(j).getStringCellValue();` 4. **修改数据**: 修改单元格值,例如: ```java Cell cell = sheet.getRow(i).getCell(j); if (cell.getCellType() == CellType.STRING) { cell.setCellValue("new_value"); } ``` 5. **保存修改**: 保存对工作簿的更改: ```java FileOutputStream outputStream = new FileOutputStream("path_to_new_file.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); ``` 6. **关闭资源**: 确保在完成后关闭流和工作簿,释放内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值