Java操作excel那些东西。。。。。。。

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();
  }
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值