java导出和读取excel数据

时间:2021-10-04 17:17:51

使用的是poi的jar包

下载地址http://poi.apache.org/download.html

主要是把jar包导入,直接新建一个列子测试一下就明白了。使用起来还是比较方便的,代码里面的原理也很好懂。

下面的代码中一共给出三个方法,第一个主要是用在写成xlsx后缀的文件使用的,后面两个方法是直接照搬网上的,通用方法无论什么版本均可以使用。

可以根据自己的需要对里面的东西进行修改

package excelTest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; /**
* 读取写入excel的demo
* @author XX
*
*/
public class Test { public static void main(String[] args) throws IOException {
String path = "E:/";
String fileName = "test";
String fileType = "xlsx";
writeXLSX(path, fileName, fileType);
read(path, fileName, fileType);
} /**
* 写入xlsx文件的方法
* @param path
* @param fileName
* @param fileType
*/
private static void writeXLSX(String path, String fileName,String fileType)
{
XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet1 = workBook.createSheet("sheet1"); //创建第一行表头
XSSFRow row = sheet1.createRow(0);
for (int j = 0; j < 8; j++) {
XSSFCell cell = row.createCell(j);
cell.setCellValue("功能"+j);
} for (int i = 1; i < 10; i++) {
XSSFRow row2 = sheet1.createRow(i);
//循环写入列数据
for (int j = 0; j < 8; j++) {
XSSFCell cell = row2.createCell(j);
cell.setCellValue("数据"+ 123456789 + j);
}
}
OutputStream stream = null;
try {
stream = new FileOutputStream(path+fileName+"."+fileType);
workBook.write(stream);
workBook.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
stream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} /**
* 可以使用两种不同格式的创建excel的方法
* @param path
* @param fileName
* @param fileType
* @throws IOException
*/
private static void writer(String path, String fileName,String fileType) throws IOException {
//创建工作文档对象
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook();
}
else if(fileType.equals("xlsx"))
{
wb = new XSSFWorkbook();
}
else
{
System.out.println("您的文档格式不正确!");
}
//创建sheet对象
Sheet sheet1 = (Sheet) wb.createSheet("sheet1");
//循环写入行数据
for (int i = 0; i < 65539; i++) {
Row row = (Row) sheet1.createRow(i);
//循环写入列数据
for (int j = 0; j < 8; j++) {
Cell cell = row.createCell(j);
cell.setCellValue("测试"+j);
}
}
//创建文件流
OutputStream stream = new FileOutputStream(path+fileName+"."+fileType);
//写入数据
wb.write(stream);
//关闭文件流
stream.close();
} /**
* 使用两种不同格式的读取excel的方法
* @param path
* @param fileName
* @param fileType
* @throws IOException
*/
public static void read(String path,String fileName,String fileType) throws IOException
{
InputStream stream = new FileInputStream(path+fileName+"."+fileType);
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook(stream);
}
else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(stream);
}
else {
System.out.println("您输入的excel格式不正确");
}
Sheet sheet1 = wb.getSheetAt(0);
for (Row row : sheet1) {
for (Cell cell : row) {
System.out.print(cell.getStringCellValue()+" ");
}
System.out.println();
}
}
} 后面两个方法转载自:http://blog.csdn.net/ptzrbin/article/details/8751229