Java读取Excel整数变成小数
Excel是一种常用的办公软件,我们常常需要从Excel中读取数据进行处理。有时候,我们可能会遇到需要将Excel中的整数转换成小数的情况。本文将介绍如何使用Java读取Excel并将整数转换成小数的方法。
1. 导入依赖库
在开始之前,我们需要导入Apache POI库,该库是一个用于读取和写入Excel文件的Java库。可以通过以下方式在项目中引入Apache POI库。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
2. 读取Excel文件
首先,我们需要使用POI库来读取Excel文件。下面是一个简单的示例代码,用于读取Excel文件中的数据。
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelReader {
public static void main(String[] args) {
try {
// 创建一个文件输入流
FileInputStream file = new FileInputStream(new File("data.xlsx"));
// 创建一个工作簿对象
Workbook workbook = WorkbookFactory.create(file);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一列
for (Cell cell : row) {
// 判断单元格类型是否为数值类型
if (cell.getCellType() == CellType.NUMERIC) {
// 将整数转换成小数
double value = cell.getNumericCellValue() / 100;
cell.setCellValue(value);
}
}
}
// 关闭工作簿和文件流
workbook.close();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们使用FileInputStream
读取Excel文件,然后使用WorkbookFactory
创建一个工作簿对象。接着,我们通过Workbook
对象获取第一个工作表,并使用两层循环遍历每一行和每一列。对于每个数值类型的单元格,我们将整数转换成小数并更新单元格的值。
3. 保存修改后的Excel文件
接下来,我们需要将修改后的Excel文件保存起来。可以通过以下代码将工作簿写入到文件中。
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelReader {
public static void main(String[] args) {
try {
// 创建一个文件输入流
FileInputStream inputFile = new FileInputStream(new File("data.xlsx"));
// 创建一个工作簿对象
Workbook workbook = WorkbookFactory.create(inputFile);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一列
for (Cell cell : row) {
// 判断单元格类型是否为数值类型
if (cell.getCellType() == CellType.NUMERIC) {
// 将整数转换成小数
double value = cell.getNumericCellValue() / 100;
cell.setCellValue(value);
}
}
}
// 创建一个文件输出流
FileOutputStream outputFile = new FileOutputStream(new File("data_updated.xlsx"));
// 将工作簿写入到文件中
workbook.write(outputFile);
// 关闭工作簿和文件流
workbook.close();
inputFile.close();
outputFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们使用FileOutputStream
创建一个文件输出流,并将工作簿写入到文件中。最后,记得要关闭工作簿和文件流。
4. 使用示例
假设我们有一个名为data.xlsx
的Excel文件,其中包含了一些整数数据。我们希望将这些整数转换成小数,并保存修改后的文件。下面是一个示例代码,使用上述的Excel读取和保存的方法。
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import