java poi read write xlsx

package myjava;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * Sample Java program to read and write Excel file in Java using Apache POI
 * http
 * ://java67.blogspot.tw/2014/09/how-to-read-write-xlsx-file-in-java-apache-poi
 * -example.html
 */
public class XLSXReaderWriter {

	public static void main(String[] args) {

		try {
			File excel = new File("/mnt/data/test.xlsx");

			writeXlsx(excel);
			readXlsx(excel);

		} catch (FileNotFoundException fe) {
			fe.printStackTrace();
		} catch (IOException ie) {
			ie.printStackTrace();
		}
	}

	static void writeXlsx(File excel) throws IOException {

		XSSFWorkbook book = new XSSFWorkbook();
		Sheet sheet = book.createSheet();
		// writing data into XLSX file
		Map<String, Object[]> newData = new HashMap<String, Object[]>();
		newData.put("7", new Object[] { 7d, "Sonya", "75K", "SALES", "Rupert" });
		newData.put("8", new Object[] { 8d, "Kris", "85K", "SALES", "Rupert" });
		newData.put("9", new Object[] { 9d, "Dave", "90K", "SALES", "Rupert" });

		Set<String> newRows = newData.keySet();
		int rownum = sheet.getLastRowNum();

		for (String key : newRows) {
			Row row = sheet.createRow(rownum++);
			Object[] objArr = newData.get(key);
			int cellnum = 0;
			for (Object obj : objArr) {
				Cell cell = row.createCell(cellnum++);
				if (obj instanceof String) {
					cell.setCellValue((String) obj);
				} else if (obj instanceof Boolean) {
					cell.setCellValue((Boolean) obj);
				} else if (obj instanceof Date) {
					cell.setCellValue((Date) obj);
				} else if (obj instanceof Double) {
					cell.setCellValue((Double) obj);
				}
			}
		}

		// open an OutputStream to save written data into Excel file
		FileOutputStream os = new FileOutputStream(excel);
		book.write(os);
		System.out.println("Writing on Excel file Finished ...");

		// Close workbook, OutputStream and Excel file to prevent leak
		os.close();
	}

	static void readXlsx(File excel) throws IOException {

		FileInputStream fis = new FileInputStream(excel);
		XSSFWorkbook book = new XSSFWorkbook(fis);
		XSSFSheet sheet = book.getSheetAt(0);

		Iterator<Row> itr = sheet.iterator();

		// Iterating over Excel file in Java
		while (itr.hasNext()) {
			Row row = itr.next();

			// Iterating over each column of Excel file
			Iterator<Cell> cellIterator = row.cellIterator();
			while (cellIterator.hasNext()) {

				Cell cell = cellIterator.next();

				switch (cell.getCellType()) {
				case Cell.CELL_TYPE_STRING:
					System.out.print(cell.getStringCellValue() + "\t");
					break;
				case Cell.CELL_TYPE_NUMERIC:
					System.out.print(cell.getNumericCellValue() + "\t");
					break;
				case Cell.CELL_TYPE_BOOLEAN:
					System.out.print(cell.getBooleanCellValue() + "\t");
					break;
				default:

				}
			}
			System.out.println("");
		}
		book.close();
		fis.close();

	}
}
Maven dependencies for poi:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.11</version>
</dependency>

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.11</version>
</dependency>

 

转载于:https://www.cnblogs.com/huaxiaoyao/p/4367610.html

Java中读写Excel文件(.xlsx)有多种方法,其中比较常用的是使用Apache POI库。以下是一个简单示例: 1. 导入Apache POI库 你可以在Maven项目中添加以下依赖项: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 或者下载POI库的jar包并将其添加到项目中。 2. 读取Excel文件 ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; 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 ReadExcel { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(new File("example.xlsx")); // 创建工作簿 Workbook workbook = new XSSFWorkbook(file); // 选择第一个工作表 Sheet sheet = workbook.getSheetAt(0); // 迭代行 for (Row row : sheet) { // 迭代单元格 for (Cell cell : row) { // 获取单元格的值 String cellValue = cell.getStringCellValue(); System.out.print(cellValue + "\t"); } System.out.println(); } // 关闭工作簿 workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 上面的代码打开名为“example.xlsx”的Excel文件并打印出所有单元格的值。 3. 写入Excel文件 ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; 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 WriteExcel { public static void main(String[] args) { try { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建行 Row row = sheet.createRow(0); // 创建单元格并设置值 Cell cell = row.createCell(0); cell.setCellValue("Hello, world!"); // 写入文件 FileOutputStream file = new FileOutputStream("example.xlsx"); workbook.write(file); // 关闭工作簿 workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 上面的代码创建了一个名为“Sheet1”的工作表,并在第一行第一列写入了“Hello, world!”。最后将工作簿保存到名为“example.xlsx”的文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值