java导出代码_java导入导出代码详解

import jxl.Workbook;

import jxl.format.UnderlineStyle;

import jxl.write.Label;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class ExcelOpt {

/**

* 生成一个Excel文件 jxl

* @param fileName 要生成的Excel文件名

* @jxl.jar 版本:2.6

*/

public static void writeExcel(String fileName){

WritableWorkbook wwb = null;

try {

//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象

wwb = Workbook.createWorkbook(new File(fileName));

} catch (IOException e) {

e.printStackTrace();

}

if(wwb!=null){

//创建一个可写入的工作表

//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置

WritableSheet ws = wwb.createSheet("工作表名称", 0);

//下面开始添加单元格

for(int i=0;i<10;i++){

for(int j=0;j<5;j++){

//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行

Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");

try {

//将生成的单元格添加到工作表中

ws.addCell(labelC);

} catch (RowsExceededException e) {

e.printStackTrace();

} catch (WriteException e) {

e.printStackTrace();

}

}

}

try {

//从内存中写入文件中

wwb.write();

//关闭资源,释放内存

wwb.close();

} catch (IOException e) {

e.printStackTrace();

} catch (WriteException e) {

e.printStackTrace();

}

}

}

/**

* 生成一个Excel文件POI

* @param inputFile 输入模板文件路径

* @param outputFile 输入文件存放于服务器路径

* @param dataList 待导出数据

* @throws Exception

* @roseuid:

*/

public static void exportExcelFile(String inputFile,String outputFile,List dataList) throws Exception{

//用模板文件构造poi

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile));

//创建模板工作表

HSSFWorkbook templatewb = new HSSFWorkbook(fs);

//直接取模板第一个sheet对象

HSSFSheet templateSheet = templatewb.getSheetAt(1);

//得到模板的第一个sheet的第一行对象 为了得到模板样式

HSSFRow templateRow = templateSheet.getRow(0);

//HSSFSheet timplateSheet = templatewb.getSheetAt(1);

//取得Excel文件的总列数

int columns = templateSheet.getRow((short) 0)

.getPhysicalNumberOfCells();

// Debug.println("columns is : " + columns); //=========================

//创建样式数组

HSSFCellStyle styleArray[] = new HSSFCellStyle[columns];

//一次性创建所有列的样式放在数组里

for (int s = 0; s < columns; s++) {

//得到数组实例

styleArray[s] = templatewb.createCellStyle();

}

//循环对每一个单元格进行赋值

//定位行

for (int rowId = 1; rowId < dataList.size(); rowId++) {

//依次取第rowId行数据 每一个数据是valueList

List valueList = (List) dataList.get(rowId - 1);

//定位列

for (int columnId = 0; columnId < columns; columnId++) {

//依次取出对应与colunmId列的值

//每一个单元格的值

String dataValue = (String) valueList.get(columnId);

//取出colunmId列的的style

//模板每一列的样式

HSSFCellStyle style = styleArray[columnId];

//取模板第colunmId列的单元格对象

//模板单元格对象

HSSFCell templateCell = templateRow.getCell((short) columnId);

//创建一个新的rowId行 行对象

//新建的行对象

HSSFRow hssfRow = templateSheet.createRow(rowId);

//创建新的rowId行 columnId列 单元格对象

//新建的单元格对象

HSSFCell cell = hssfRow.createCell((short) columnId);

//如果对应的模板单元格 样式为非锁定

if (templateCell.getCellStyle().getLocked() == false) {

//设置此列style为非锁定

style.setLocked(false);

//设置到新的单元格上

cell.setCellStyle(style);

}

//否则样式为锁定

else {

//设置此列style为锁定

style.setLocked(true);

//设置到新单元格上

cell.setCellStyle(style);

}

//设置编码

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

//Debug.println("dataValue : " + dataValue);

//设置值 统一为String

cell.setCellValue(dataValue);

}

}

//设置输入流

FileOutputStream fOut = new FileOutputStream(outputFile);

//将模板的内容写到输出文件上

templatewb.write(fOut);

fOut.flush();

//操作结束,关闭文件

fOut.close();

}

/**

* 导出数据为XLS格式

* @param fos 生成Excel文件Path

* @param bo 要导入的数据

*/

public static void writeExcelBo(String fos, java.util.List ve)

{

jxl.write.WritableWorkbook wwb;

try

{

wwb= Workbook.createWorkbook(new File(fos));

jxl.write.WritableSheet ws= wwb.createSheet("a", 10);

ws.addCell(new jxl.write.Label(0, 1, "b"));

ws.addCell(new jxl.write.Label(1, 1, "c"));

ws.addCell(new jxl.write.Label(2, 1, "d"));

ws.addCell(new jxl.write.Label(3, 1, "e"));

int bookSize=ve.size();

BookVO book = new BookVO();

for (int i= 0; i < bookSize; i++)

{

book= (BookVO)ve.get(i);

ws.addCell(new jxl.write.Label(0, i + 2, "" + book.getBookName()));

ws.addCell(new jxl.write.Label(1, i + 2, book.getBookAuthor()));

ws.addCell(new jxl.write.Label(2, i + 2, "" + book.getBookPrice()));

ws.addCell(new jxl.write.Label(3, i + 2, book.getBookConcern()));

}

// jxl.write.WritableFont wfc=

//new jxl.write.WritableFont(WritableFont.ARIAL,255,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);

//jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);

ws.addCell(new jxl.write.Label(0, 0, "abcd!"));

wwb.write();

// 关闭Excel工作薄对象

wwb.close();

} catch (IOException e){

} catch (RowsExceededException e){

} catch (WriteException e){

}

}

public static void main(String[] args) {

writeExcel("c:\\Test测试Excel.xls");

System.out.println("OK");

ArrayList list = new ArrayList();

for (int i = 0; i < 10; i++) {

BookVO book = new BookVO();

book.setBookName("WebWork in action+"+i);

book.setBookAuthor("aa+"+i);

book.setBookPrice("cc+"+i);

book.setBookConcern("YY+"+i);

list.add(book);

}

writeExcelBo("c:\\XX.xls",list);

System.err.println("OK!");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值