package com.h3c.testloan.command;
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import com.lowagie.text.DocumentException;
import com.ncs.iframe.base.ejb.command.CommandException;
public class ExcelTest{
public void createExcel()throws DocumentException,IOException, CommandException {
String excelName = "e:/excel.xls";
try {
File excelFile = new File(excelName);
// 如果文件存在就删除它
if (excelFile.exists()){
//excelFile.delete();
}else{
//读取工作薄的对象
//Workbook wk=Workbook.getWorkbook(new File(excelName));
//创建一个工作薄的对象
WritableWorkbook wwb = Workbook.createWorkbook(excelFile);
//创建Sheet 对象
WritableSheet ws = wwb.createSheet("单据", 0);
WritableSheet ws1 = wwb.createSheet("联系", 1);
/*
* 表格属性设置
*/
//mergeCells(a,b,c,d) 单元格合并函数 a 单元格的列号,b 单元格的行号,c 从单元格[a,b]起,向下合并的列数,d 从单元格[a,b]起,向下合并的行数
ws.mergeCells(0, 0, 3, 1);
ws.mergeCells(1, 1, 3, 1);
//ws.getSettings().setProtected(true);//置xls的保护,单元格为只读的
ws.getSettings().setDefaultColumnWidth(22);//设置列的默认宽度
ws.setRowView(2,false);//行高自动扩展
ws.setColumnView(0, 22);//设置第一列宽度
//ws.setRowView(1, 10); //行高
//ws.setColumnView(10,1); //列宽
WritableFont font = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//设置字体
WritableFont font1 = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//设置字体
font.setColour(Colour.RED);
WritableCellFormat format = new WritableCellFormat(font);
WritableCellFormat format1 = new WritableCellFormat(font1);
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //加边框
format1.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //加边框
format1.setVerticalAlignment(jxl.format.VerticalAlignment.TOP);//垂直对齐靠上
format1.setWrap(true);//自动换行
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
String officeTemplateName="接收人:宏东东"
+ " \n"// 换行
+"退货地址:中宏保险(浙江分公司) 黄龙路5号黄龙恒励大厦2层G-i" +
" \n"// 换行
+"邮编:310053" +
"电话:0571-86121212121" +
"退货接口人联系方式 (对于没有使用原包装产生的运损将加倍处罚,原包装包材可向逆向申领)" +
"请收到退货通知后,在电子流中点击《创建办事处退货签收单》,填写完成后打印、传真给承运商退货接口人办理退货,并在一个月内将实物退回公司。" +
"顺丰物流接口人:顺丰 电话:0571-25256565 传真号:0571-564489889 邮箱: SUNFENG@kerryeas.com" +
"申通快递 联系人:申通 电话:0571-82366666 传真:0571-82366666" +
"韵达快递 联系人:韵达 电话:0571-56379276 手机:13235716358 传真:0571-56379276" +
"天天快递 联系人:天天 电话:0571-63756889 手机:3958016145 传真:0571-63756889" +
"圆通快递 联系人:圆通 座机:0571-88293420 手机:15205810142 传真:0571-88293420" +
"温馨提示:请向上门提货人员索要加盖承运商公章的《办事处退货签收单》,以免货物被恶意提走,双方签字后自己留存一份复印件备查。" +
"主要退货步骤:1、中国区保险管理电子流填写保险退保申请。" +
"2、得到退保通知后将电子流第五环节《退保签收单》打印后联系承运商接口人。" +
" 3、安排退保,总部实物接收人:许艳 地址:黄龙路5号黄龙恒励大厦2层G-i。" +
"4、收到验收报告无误后,即核销退保记录。";
ws.addCell(new Label(0, 0, "杭州分公司退保签收单",format));
ws.addCell(new Label(1, 2, "东东家 09383",format));
ws.addCell(new Label(3, 2, "杭州分公司",format));
ws.addCell(new Label(1, 3, "2013-02-06 14:23:15",format));
ws.addCell(new Label(1, 6, "xy1234561211199",format));
ws.addCell(new Label(1, 7, "EXY0012",format));
ws.addCell(new Label(1, 8, "10",format));
ws.addCell(new Label(3, 8, "50000",format));
ws.addCell(new Label(1, 9, "浙江省杭州市西湖区",format));
ws.addCell(new Label(1, 11, "中宏保险(浙江分公司)",format));
ws1.addCell(new Label(0,0,officeTemplateName,format1));
wwb.write();
wwb.close();
}
}catch(Exception ex){
ex.printStackTrace();
throw new CommandException(ex);
}
}
/***********************************修改****************************************************************/
public void updateExcel()throws DocumentException,IOException, CommandException {
String excelName = "e:/excel.xls";
try {
//读取工作薄的对象
Workbook twwb = Workbook.getWorkbook(new File(excelName));
WritableWorkbook wwb = Workbook.createWorkbook(new File(excelName), twwb);
WritableSheet ws = wwb.getSheet(0);
WritableSheet ws1 = wwb.getSheet(1);
WritableFont font = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//设置字体
WritableFont font1 = new WritableFont(WritableFont.createFont("宋体"),10, WritableFont.BOLD,false);//设置字体
font.setColour(Colour.RED);
WritableCellFormat format = new WritableCellFormat(font);
WritableCellFormat format1 = new WritableCellFormat(font1);
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //加边框
format1.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //加边框
format1.setVerticalAlignment(jxl.format.VerticalAlignment.TOP);//垂直对齐靠上
format1.setWrap(true);//自动换行
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
BigDecimal count = new BigDecimal("2.56565");
BigDecimal freight=new BigDecimal("200.2356545");
Calendar startTime = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeString = sdf.format(startTime.getTime());
String officeTemplateName="接收人:宏东东"
+ " \n"// 换行
+"退货地址:中宏保险(浙江分公司) 黄龙路5号黄龙恒励大厦2层G-i" +
"邮编:310053" +
"电话:0571-86121212121" +
"退货接口人联系方式 (对于没有使用原包装产生的运损将加倍处罚,原包装包材可向逆向申领)" +
"请收到退货通知后,在电子流中点击《创建办事处退货签收单》,填写完成后打印、传真给承运商退货接口人办理退货,并在一个月内将实物退回公司。" +
"顺丰物流接口人:顺丰 电话:0571-25256565 传真号:0571-564489889 邮箱: SUNFENG@kerryeas.com" +
"申通快递 联系人:申通 电话:0571-82366666 传真:0571-82366666" +
"韵达快递 联系人:韵达 电话:0571-56379276 手机:13235716358 传真:0571-56379276" +
"天天快递 联系人:天天 电话:0571-63756889 手机:3958016145 传真:0571-63756889" +
"圆通快递 联系人:圆通 座机:0571-88293420 手机:15205810142 传真:0571-88293420" +
"温馨提示:请向上门提货人员索要加盖承运商公章的《办事处退货签收单》,以免货物被恶意提走,双方签字后自己留存一份复印件备查。" +
"主要退货步骤:1、中国区保险管理电子流填写保险退保申请。" +
"2、得到退保通知后将电子流第五环节《退保签收单》打印后联系承运商接口人。" +
" 3、安排退保,总部实物接收人:许艳 地址:黄龙路5号黄龙恒励大厦2层G-i。" +
"4、收到验收报告无误后,即核销退保记录。";
ws.addCell(new Label(1, 2, "东东家 09383",format));
ws.addCell(new Label(3, 2, "杭州分公司",format));
ws.addCell(new Label(1, 3, timeString,format));
ws.addCell(new Label(1, 6, "xy1234561211199",format));
ws.addCell(new Label(1, 7, "EXY0012",format));
ws.addCell(new Number(1, 8, count.doubleValue(),format));//数据类型转换
ws.addCell(new Number(3, 8, freight.doubleValue(),format));
ws.addCell(new Label(1, 9, "浙江省杭州市西湖区",format));
ws.addCell(new Label(1, 11, "中宏保险(浙江分公司)",format));
ws1.addCell(new Label(0,0,officeTemplateName,format1));
wwb.write();
wwb.close();
}catch(Exception ex){
ex.printStackTrace();
throw new CommandException(ex);
}
}
public static void main(String[] args) throws CommandException{
ExcelTest b=new ExcelTest();
try {
b.createExcel();
//b.updateExcel();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}