利用POI读取和写入Excel2007文件

POI
这是两个例程,是演示如何使用Java读取和写入Excel 2007 文件。注释里有比较详细的开发环境说明,你只要在Eclipse里粘过去不可以运行了。

这里有两个例子,分别演示如何使用Java读取和写入Excel 2007文件。

一、写入Excel 2007文件

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class POIExcelWriteDemo1 {
    public static void main(String[] args) {
        try {
            Workbook wb = new XSSFWorkbook();
            CreationHelper createHelper = wb.getCreationHelper();
            Sheet sheet = wb.createSheet("第一页");
            // 创建行
            Row row = sheet.createRow((short) 0);
            // 创建单元格,方法1
            Cell cell = row.createCell(0);
            cell.setCellValue(1);
            // 直接创建单元格,方法2
            row.createCell(1).setCellValue(1.2);
            row.createCell(2).setCellValue(createHelper.createRichTextString("你好我是Bug315"));
            row.createCell(3).setCellValue(createHelper.createRichTextString("www.hxstrive.com"));
            row.createCell(4).setCellValue(true);
            // 写入文件
            FileOutputStream fileOut;
            fileOut = new FileOutputStream("bug315.xlsx");
            wb.write(fileOut);
            fileOut.close();
            System.out.println("写入成功,运行结束!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

二、读取Excel 2007文件数据

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class POIExcelReadDemo1 {
    public static void main(String[] args) {
        try {
            InputStream inp = new FileInputStream("bug315.xlsx");
            Workbook wb = WorkbookFactory.create(inp);
            Sheet sheet = wb.getSheetAt(0);
            for (Iterator rit = sheet.rowIterator(); rit.hasNext();) {
                Row row = (Row) rit.next(); // 迭代行
                // 迭代单元格
                for (Iterator cit = row.cellIterator(); cit.hasNext();) {
                    Cell cell = (Cell) cit.next();
                    // 开始操作单元格(注意行和列是基于0索引的)
                    // 在每一行的输出都打印如 "4:3 例子字符串",4:3代表第4行,第3列
                    System.out.print(cell.getRowIndex() + ":" + cell.getColumnIndex() + " ");
                    // 打印单元格内的数据
                    switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_STRING:
                        System.out.println(cell.getRichStringCellValue().getString());
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        if (DateUtil.isCellDateFormatted(cell)) {
                            System.out.println(cell.getDateCellValue());
                        } else {
                            System.out.println(cell.getNumericCellValue());
                        }
                        break;
                    case Cell.CELL_TYPE_BOOLEAN:
                        System.out.println(cell.getBooleanCellValue());
                        break;
                    case Cell.CELL_TYPE_FORMULA:
                        System.out.println(cell.getCellFormula());
                        break;
                    default:
                        System.out.println();
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
生活总会给你答案的,但不会马上把一切都告诉你。只要你肯等一等,生活的美好,总在你不经意的时候,盛装莅临。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号