您的位置:首页 > 编程语言 > Java开发

JAVA生成并导入导出Excel表格文件

2016-07-23 13:58 477 查看
JAVA有一句话,”一切皆对象”,那么我们要在代码中对Excel文件进行操作,当然是要把他看做一个对象。废话不多说,先贴一个简单生成并导出Excel文件的例子,使用org.apache.poi完成:

/**
* Created by Admin on 2016/7/22.
*/
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CreateXL
{
public static String xlsFile="for_test2.xls"; //产生的Excel文件的名称
public static void main(String args[])
{
try
{
HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象,也就是xls文件对象
HSSFSheet sheet = workbook.createSheet(); //产生工作表对象
//设置第一个工作表的名称为firstSheet

workbook.setSheetName(0,"firstSheet");//设置表名

//产生一行,获得行对象
HSSFRow row = sheet.createRow((short)0);

for(int i=0;i<20;i++)
{
//创建一个单元格对象,参数i为此row行对象的第几格,从0开始计算
HSSFCell cell = row.createCell(i);
//设置单元格的格式为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//设置单元格的值
cell.setCellValue("列"+i);
}

//文件输出流输出,通过HSSFWorkBook的write方法
FileOutputStream fOut = new FileOutputStream(xlsFile);
workbook.write(fOut);
fOut.flush();
fOut.close();

for(int i=0;i<21;i++){
//文件输入流,获得刚才输出的表格对象
FileInputStream fis = new FileInputStream(xlsFile);
HSSFWorkbook workbook1 = new HSSFWorkbook(fis);
HSSFSheet sheet1 = workbook1.getSheet("firstSheet");
HSSFRow rows = sheet1.getRow(0);
HSSFCell cell = rows.getCell(i);
//既然有set方法,当然就存在get方法
System.out.println("第"+i+"列的列名"+cell.getStringCellValue());
}

}
catch(Exception e)
{
e.printStackTrace();
}
}
}


代码执行之后,生成文件for_test2.xls ,目录当然是位于项目的目录下;



项目使用Maven管理,jar包导入代码如下

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


若需要jar文件,可前往官网自己下载 (反正我只用打字,maven会帮我下载 <( ̄3 ̄)> )

此程序有诸多限定条件,可能根据jar包的版本不同,也有不同方法,但是基本使用是相同的。我相信还有一些封装得很不错、方便使用的类与方法,但是,基本原理掌握了,走遍天下都不怕,java中便捷的方法,是永远学不完的。

tips:输出的write方法

public void write(OutputStream stream) throws IOException {
byte[] bytes = this.getBytes();
POIFSFileSystem fs = new POIFSFileSystem();
ArrayList excepts = new ArrayList(1);
fs.createDocument(new ByteArrayInputStream(bytes), "Workbook");
this.writeProperties(fs, excepts);
if(this.preserveNodes) {
excepts.add("Workbook");
excepts.add("WORKBOOK");
this.copyNodes(this.filesystem, fs, excepts);
}
fs.writeFilesystem(stream);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java excel