用Java生成excel表格并填入数据
在实际开发中,有时候我们需要根据某个excel模板文件生成新的excel表格,并填入特定的数据。这时候,我们可以使用Java来实现这个功能。在本篇文章中,我们将介绍如何利用Java读取excel模板文件,并将数据填入excel表格中。
准备工作
在开始之前,我们需要准备好以下工具和库:
- Apache POI库:用于操作excel文件
- Excel模板文件:作为生成excel表格的基础
- JDK和Maven:用于编译和构建项目
首先,我们需要在pom.xml
文件中添加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>
读取excel模板文件
我们首先需要读取excel模板文件,这个文件可以作为我们生成新excel表格的基础。假设我们有一个名为template.xlsx
的excel模板文件,其中包含了我们需要填入数据的表格结构。
接下来,我们可以通过以下代码来读取模板文件:
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.io.FileInputStream;
import java.io.InputStream;
public class ExcelTemplateReader {
public Workbook readTemplate(String filePath) {
try (InputStream inputStream = new FileInputStream(filePath)) {
Workbook workbook = WorkbookFactory.create(inputStream);
return workbook;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
在上面的代码中,我们定义了一个ExcelTemplateReader
类,其中包含一个readTemplate
方法用于读取excel模板文件。
填入数据并生成新excel表格
一旦我们读取了excel模板文件,接下来就可以填入数据并生成新的excel表格了。假设我们有一些数据需要填入模板文件中的表格中。
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import java.io.FileOutputStream;
public class ExcelDataFiller {
public void fillData(Workbook workbook, String outputPath) {
Sheet sheet = workbook.getSheetAt(0); // 假设我们要填入的数据在第一个sheet中
Row row = sheet.getRow(1); // 假设我们要填入的数据从第二行开始
Cell cell = row.getCell(0); // 假设我们要填入的数据从第一列开始
cell.setCellValue("数据1");
row = sheet.getRow(2);
cell = row.getCell(1);
cell.setCellValue("数据2");
// 还可以继续填入其他数据
try (FileOutputStream fileOut = new FileOutputStream(outputPath)) {
workbook.write(fileOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们定义了一个ExcelDataFiller
类,其中包含一个fillData
方法用于填充数据并生成新的excel表格。
整合代码并生成excel表格
最后,我们可以将ExcelTemplateReader
和ExcelDataFiller
整合在一起,实现根据excel模板文件生成新excel表格并填入数据的功能。
public class ExcelGenerator {
public static void main(String[] args) {
ExcelTemplateReader templateReader = new ExcelTemplateReader();
Workbook workbook = templateReader.readTemplate("template.xlsx");
if (workbook != null) {
ExcelDataFiller dataFiller = new ExcelDataFiller();
dataFiller.fillData(workbook, "output.xlsx");
}
}
}
在上面的代码中,我们首先读取excel模板文件,然后填入数据并生成新的excel表格。最终,生成的excel表格将保存在output.xlsx
文件中。
总结
通过本篇文章的介绍,我们学习了如何利用Java根据excel模板文件生成新的excel表格并填入数据。这个功能在实际开发中经常会用到,希望本文对您有所帮助。
**引用形式的描述信息: