21xrx.com
2024-09-20 05:31:54 Friday
登录
文章检索 我的文章 写文章
「Java实战」使用POI实现Excel的导入导出功能
2023-06-18 04:19:52 深夜i     --     --
Java POI Excel导入导出

在企业应用中,常常需要将大量数据以表格形式呈现,Excel表格是一种非常常用的方案。Java中提供了许多开源的库来实现对Excel表格的操作,其中最好用的便是POI(Poor Obfuscation Implementation),该库提供了对Excel 97-2003、Excel 2007、Excel 2010、Excel 2013、Excel 2016等不同版本的支持。

本文将讲解如何使用POI来实现Excel的导入导出,以下是相关代码实例:


import java.io.*;

import java.util.*;

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.*;

import org.apache.poi.hssf.usermodel.*;

public class ExcelUtil {

  // 导入excel表格,返回表格数据

  public static List > importExcel(File file) throws Exception {

    List > data = new ArrayList<>();

    InputStream is = new FileInputStream(file);

    Workbook wb = null;

    if(file.getName().endsWith(".xls")) {

      wb = new HSSFWorkbook(is); // Excel 97-2003

    } else if(file.getName().endsWith(".xlsx")) {

      wb = new XSSFWorkbook(is); // Excel 2007及以上

    }

    Sheet sheet = wb.getSheetAt(0); // 获取第一个Sheet页

    // 遍历Sheet页获取数据

    Iterator rows = sheet.rowIterator();

    while(rows.hasNext()) {

      List rowdata = new ArrayList<>();

      Row row = rows.next();

      int cells = row.getLastCellNum();

      for(int i = 0; i < cells; i++) {

        Cell cell = row.getCell(i);

        if(cell == null) {

          rowdata.add("");

        } else {

          rowdata.add(cell.getStringCellValue());

        }

      }

      data.add(rowdata);

    }

    return data;

  }

  // 导出excel表格

  public static void exportExcel(List > data, String filename) throws Exception {

    Workbook wb = new XSSFWorkbook(); // 新建Excel文件

    Sheet sheet = wb.createSheet(filename); // 创建Sheet页

    // 写入数据

    for(int i = 0; i < data.size(); i++) {

      Row row = sheet.createRow(i);

      List rowdata = data.get(i);

      for(int j = 0; j < rowdata.size(); j++) {

        Cell cell = row.createCell(j);

        cell.setCellValue(rowdata.get(j));

      }

    }

    FileOutputStream fos = new FileOutputStream(filename);

    wb.write(fos);

    fos.close();

  }

}

通过以上代码,我们可以很方便地实现Excel表格的导入导出操作。接下来,我们就可以在项目中尝试应用这个工具类。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复