21xrx.com
2025-03-27 15:36:47 Thursday
文章检索 我的文章 写文章
「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表格的导入导出操作。接下来,我们就可以在项目中尝试应用这个工具类。

  
  

评论区

    相似文章