Apache POI是Java库,用于读取、编写和操作Microsoft Office格式的文档。在使用Apache POI进行Excel文件操作时,我们有时需要将不同单元格中的时间值进行传递。
以下代码示例演示了如何将一个单元格的时间值复制到另一个单元格:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import java.io.*;
public class CellTransferTime {
public static void main(String[] args) throws Exception {
String filePath = "sample.xlsx";
FileInputStream inputStream = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
// 获取第一个单元格的时间值
CellReference reference1 = new CellReference("A1");
XSSFRow row1 = sheet.getRow(reference1.getRow());
XSSFCell cell1 = row1.getCell(reference1.getCol());
long time1 = (long) cell1.getNumericCellValue();
// 将第一个单元格的时间值传递到第二个单元格
CellReference reference2 = new CellReference("B1");
XSSFRow row2 = sheet.getRow(reference2.getRow());
XSSFCell cell2 = row2.getCell(reference2.getCol());
cell2.setCellValue(new java.sql.Timestamp(time1));
// 保存并关闭Excel文件
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(filePath);
workbook.write(outputStream);
workbook.close();
outputStream.close();
}
}
在上面的示例代码中,我们使用了CellReference类来获取单元格的引用,然后使用XSSFRow和XSSFCell类来获取单元格。我们可以使用getNumericCellValue()方法来获取单元格中的时间值,并使用setCellValue()方法将时间值传递到另一个单元格中。最后,我们需要保存并关闭Excel文件。