java excel导出控件_如何使用JExcel导出Excel文件

JExcel是java导出Excel的一个开源工具包。有的时候需要将数据导到Excel文件中以便观看。

核心代码如下:

package test;

import java.io.File;

import java.io.IOException;

import java.util.Calendar;

import java.util.Date;

import jxl.Cell;

import jxl.CellType;

import jxl.DateCell;

import jxl.LabelCell;

import jxl.NumberCell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;

import jxl.write.DateFormat;

import jxl.write.DateTime;

import jxl.write.Label;

import jxl.write.Number;

import jxl.write.NumberFormat;

import jxl.write.NumberFormats;

import jxl.write.WritableCell;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

public class TutorialMain {

/**

* WritingSpreadSheet

*/

public void WritingSpreadSheet() {

try {

//创建一个WorkBook,即一个Excel文件,文件目录为param0

WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\\output.xls"));

//创建一个Sheet,即表单,名字为param0;位置为param1

WritableSheet sheet = workbook.createSheet("First Sheet Name", 0);

sheet.setColumnView(0, 30); // 设置列的宽度

sheet.setColumnView(1, 30); // 设置列的宽度

sheet.setColumnView(2, 30); // 设置列的宽度

sheet.setRowView(6, 1000); // 设置行的高度

sheet.setRowView(4, 1000); // 设置行的高度

sheet.setRowView(5, 1000); // 设置行的高度

//创建一个Label,x坐标param0,y坐标param1,名字为param2

Label label = new Label(0, 2, "A label record");

//将该Label

sheet.addCell(label);

//创建一个Number,x坐标param0,y坐标param1,数值为param2

Number number = new Number(3, 4, 3.1459);

sheet.addCell(number);

/**

* 格式化信息

*/

// Create a cell format for Arial 10 point font

WritableFont arial10font = new WritableFont(WritableFont.ARIAL, 10);

WritableCellFormat arial10format = new WritableCellFormat (arial10font);

// Create the label, specifying content and format

Label label2 = new Label(1,0, "Arial 10 point label", arial10format);

sheet.addCell(label2);

Label label3 = new Label(2, 0, "Another Arial 10 point label", arial10format);

sheet.addCell(label3);

// Create a cell format for Times 16, bold and italic

WritableFont times16font = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, true);

WritableCellFormat times16format = new WritableCellFormat (times16font);

// Create the label, specifying content and format

Label label4 = new Label(3,0, "Times 16 bold italic label", times16format);

times16format.setBackground(jxl.format.Colour.BLUE);

times16format.setAlignment(jxl.format.Alignment.CENTRE);

sheet.addCell(label4);

/**

* 格式化数值

*/

WritableCellFormat integerFormat = new WritableCellFormat (NumberFormats.INTEGER);

Number number2 = new Number(0, 4, 3.141519, integerFormat);

sheet.addCell(number2);

WritableCellFormat floatFormat = new WritableCellFormat (NumberFormats.FLOAT);

Number number3 = new Number(1, 4, 3.141519, floatFormat);

sheet.addCell(number3);

NumberFormat fivedps = new NumberFormat("#.#####");

WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps);

Number number4 = new Number(2, 4, 3.141519, fivedpsFormat);

sheet.addCell(number4);

WritableCellFormat fivedpsFontFormat = new WritableCellFormat (times16font, fivedps);

Number number5 = new Number(3, 4, 3.141519, fivedpsFontFormat);

sheet.addCell(number5);

/**

* Formatting Dates

*/

// Get the current date and time from the Calendar object

Date now = Calendar.getInstance().getTime();

DateFormat customDateFormat = new DateFormat ("dd MM yyyy hh:mm:ss");

WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat);

DateTime dateCell = new DateTime(0, 6, now, dateFormat);

sheet.addCell(dateCell);

/**

* 合并单元格

*/

WritableSheet sheet1 = workbook.createSheet("First Sheet", 1);

sheet1.mergeCells(0, 0, 1, 1);

// All sheets and cells added. Now write out the workbook

workbook.write();

workbook.close();

System.out.println("创建成功..");

} catch (IOException e) {

// TODO Auto-generated catch block

System.out.println("创建失败..");

e.printStackTrace();

} catch (RowsExceededException e) {

// sheet.addCell Exception

System.out.println("创建失败..");

e.printStackTrace();

} catch (WriteException e) {

System.out.println("创建失败..");

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

*

* @param filePath 文件路径

* @param fileName 文件名

*/

public void ReadingSpreadSheets(String filePath,String fileName){

try {

Workbook workbook = Workbook.getWorkbook(new File(filePath + "\\" + fileName));

Sheet sheet = workbook.getSheet(0);

Cell a1 = sheet.getCell(0,0);

Cell b2 = sheet.getCell(1,1);

Cell c2 = sheet.getCell(2,1);

String stringa1 = a1.getContents();

String stringb2 = b2.getContents();

String stringc2 = c2.getContents();

double numberb2 = 0;

Date datec2 = null;

if (a1.getType() == CellType.LABEL)

{

LabelCell lc = (LabelCell) a1;

stringa1 = lc.getString();

}

if (b2.getType() == CellType.NUMBER)

{

NumberCell nc = (NumberCell) b2;

numberb2 = nc.getValue();

}

if (c2.getType() == CellType.DATE)

{

DateCell dc = (DateCell) c2;

datec2 = dc.getDate();

}

// 其他处理

// ...

// 结束后关闭文件并释放内存

workbook.close();

System.out.println("读取成功..");

} catch (BiffException e) {

// TODO Auto-generated catch block

System.out.println("读取失败..");

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

System.out.println("读取失败..");

e.printStackTrace();

}

}

public void copyWorkBook(String oldFilePath,String oldFileName,String newFilePath,String newFileName ){

try {

Workbook workbook = Workbook.getWorkbook(new File( oldFilePath + "\\" + oldFileName ));

WritableWorkbook copy = Workbook.createWorkbook(new File( newFilePath +"\\" +newFileName ), workbook);

//进行一些操作

WritableSheet sheet = copy.getSheet(1);

WritableCell cell0 = sheet.getWritableCell(1, 2);

if (cell0.getType() == CellType.LABEL)

{

Label l0 = (Label) cell0;

l0.setString("modified cell");

}

WritableSheet sheet2 = copy.getSheet(1);

WritableCell cell = sheet2.getWritableCell(2, 4);

NumberFormat fivedps = new NumberFormat("#.#####");

WritableCellFormat cellFormat = new WritableCellFormat(fivedps);

cell.setCellFormat(cellFormat);

Label label = new Label(0, 2, "New label record");

sheet2.addCell(label);

Number number = new Number(3, 4, 3.1459);

sheet2.addCell(number);

// 所有的都完成,关闭资源

workbook.close();

copy.write();

copy.close();

} catch (BiffException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (RowsExceededException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (WriteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args){

TutorialMain main = new TutorialMain();

main.WritingSpreadSheet();

}

}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

a6e1590ae4b228073faff3806334194e.png0

好文不易,鼓励一下吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值