jxl 生成excel

package cn.com.glxt.excel;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
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;

import org.apache.log4j.Logger;

public class CreateExcel {
private static final Logger LOG = Logger.getLogger(CreateExcel.class);
public static void main(String[] args) {
String directory = "D:/Users/test/excel";
mkdir(directory);
String filePath = directory+File.separator+UUID.randomUUID().toString()+".xls";
File excelFile = new File(filePath);
WritableWorkbook book = null;
WritableSheet sheet = null;
try {
book = Workbook.createWorkbook(excelFile);
sheet = book.createSheet("报表", 0);
//设置列宽行高
setColumnRowWidth(sheet, 6,15);
addConteent(sheet);
book.write();
} catch (IOException e) {
LOG.error("获取createWorkbook失败:"+e.getMessage(), e);
} catch (WriteException e) {
LOG.error("写EXCEL失败:"+e.getMessage(), e);
}finally{
if(book != null){
try {
book.close();
} catch (Exception e) {
LOG.error(e.getMessage(), e);
}
}
}
}

public static void addConteent(WritableSheet sheet) throws WriteException{
WritableFont wf_title = new WritableFont(WritableFont.ARIAL, 11,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
WritableCellFormat wcf = new WritableCellFormat(wf_title);//单元格样式
wcf.setAlignment(Alignment.CENTRE);// 单元格居中
//第一列第一行单元格
Label titleLaber=new Label(0,0,"年终统计",wcf);
sheet.addCell(titleLaber);
//合并单元格 开始从第几列,第几行开始合并到第几列第几行结束
sheet.mergeCells(0, 0, 5, 0);

Label laber1=new Label(0,1,"上半年盈利(万元)",wcf);
sheet.addCell(laber1);
sheet.mergeCells(0, 1, 2, 1);


Label laber2=new Label(3,1,"上半年盈利(万元)",wcf);
sheet.addCell(laber2);
sheet.mergeCells(3, 1, 5, 1);


NumberFormat doubleFormat3=new NumberFormat("");
//单元格样式
WritableCellFormat doublewcf3=new WritableCellFormat(doubleFormat3);
doublewcf3.setAlignment(Alignment.CENTRE);//水平居中
doublewcf3.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直居中
Number number1 = new Number(0, 2, Double.valueOf("90.00"), doublewcf3);
sheet.addCell(number1);
sheet.mergeCells(0, 2, 2, 2);


Number number2 = new Number(3, 2, Double.valueOf("90.00"), doublewcf3);
sheet.addCell(number2);
sheet.mergeCells(3, 2, 5, 2);


insertRows(sheet, 3, 6, 3);
}

private static void insertRows(WritableSheet sheet,int rows,int columns,int rowIndex) throws WriteException{
NumberFormat doubleFormat3=new NumberFormat("");
WritableCellFormat doublewcf3=new WritableCellFormat(doubleFormat3);
doublewcf3.setAlignment(Alignment.CENTRE);//水平居中
doublewcf3.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直居中
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
Number number = new Number(j, i+rowIndex, Double.valueOf("10"), doublewcf3);
sheet.addCell(number);
}

}
}
/**
* 设置列的宽度,行的高度
* @param sheet
* @throws RowsExceededException
*/
private static void setColumnRowWidth(WritableSheet sheet,int columns,int rows) throws RowsExceededException{
for(int i=0;i<columns;i++){
sheet.setColumnView(i, 15);
}

for(int i=0;i<rows;i++){
sheet.setRowView(i, 400);
}
}

/**
* 创建目录
* @param directory
*/
private static void mkdir(String directory){
File file = new File(directory);
if(!file.exists()){
file.mkdirs();
}
}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值