您的位置:首页 > 编程语言 > Java开发

java excel控制

2007-08-17 08:28 260 查看
import java.io.File;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class CreateXLS {
public static void main(String args[]) {
// 打开文件
WorkbookSettings ws = new WorkbookSettings();
WritableWorkbook book;
String name = "commodity.xls";
try {
book = Workbook.createWorkbook(new File("c:/" + name));
// 生成名为"商品信息"的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("商品信息", 0);

sheet.addCell(new jxl.write.Label(0, 0, "商品ID"));
sheet.addCell(new jxl.write.Label(1, 0, "供货商ID"));
sheet.addCell(new jxl.write.Label(2, 0, "品牌"));
sheet.addCell(new jxl.write.Label(3, 0, "机型"));
sheet.addCell(new jxl.write.Label(4, 0, "终端类型"));
sheet.addCell(new jxl.write.Label(5, 0, "配置"));

sheet.addCell(new jxl.write.Label(0, 2, "888"));
sheet.addCell(new jxl.write.Label(1, 2, "666"));
sheet.addCell(new jxl.write.Label(2, 2, "三星"));
sheet.addCell(new jxl.write.Label(3, 2, "A108"));
sheet.addCell(new jxl.write.Label(4, 2, "CDMA"));
sheet.addCell(new jxl.write.Label(5, 2, "双电双充"));

sheet.addCell(new jxl.write.Label(0, 3, "999"));
sheet.addCell(new jxl.write.Label(1, 3, "666"));
sheet.addCell(new jxl.write.Label(2, 3, "摩托罗拉"));
sheet.addCell(new jxl.write.Label(3, 3, "V888"));
sheet.addCell(new jxl.write.Label(4, 3, "GSM"));
sheet.addCell(new jxl.write.Label(5, 3, "双电双充"));
// 写入数据并关闭文件
book.write();
book.close();
System.out.println("文件已创建");
} catch (Exception e) {
System.out.println(e);
}
}

}

//设置excel字体大小
WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,18, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE);
WritableCellFormat wcf = new jxl.write.WritableCellFormat(wf);
WritableFont wf1 = new jxl.write.WritableFont(WritableFont.TIMES,12, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE);
WritableCellFormat wcf1 = new jxl.write.WritableCellFormat(wf1);

实例:

//判断是否有d:/excel子目录 如果有则跳过 没有自动创建一个(excel报表)文件夹
File diraaa = new File("d:/excel报表");
if(!diraaa.exists()){
diraaa.mkdirs();
//diraaa.createNewFile();
}

//判断获取的日期是否为空 如果为空则获取当天日期查询报表 如果获取了要查询日期 则对获取日期查询报表 date2为获取的日期
String a="";
if(date2==null||a.equals(date2))
{
Date date = new Date();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//将字符串转化为日期类型。
String date1 = fmt.format(Long.valueOf(date.getTime()));

String name = "维修汇总台次表("+date1+").xls";

//判断当日查询报表是否存在 如果已经存在 则删除之 既而重新生成一个新的当日excel文件 如果不存在则生成新当日excel
File dir = new File("d:/excel报表/"+name);
if(dir.exists()){
dir.delete();
}
book = Workbook.createWorkbook(new File("d:/excel报表/"+name));

}
else{

//判断查询日期报表是否存在 如果已经存在 则删除之 既而重新生成一个新的excel文件 如果不存在则生成查询日期excel
String name = "维修汇总台次表("+date2+").xls";
File dir = new File("d:/excel报表/"+name);
//int i=1;
if(dir.exists()){
dir.delete();
}

book = Workbook.createWorkbook(new File("d:/excel报表/"+name));

}
try {
//创建一个新的sheet工作区
WritableSheet sheet = book.createSheet("维修情况汇总表", 0);
//FontName fontName = WritableFont.createFont("宋体");
//设置excel字体大小
WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,18, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE);
WritableCellFormat wcf = new jxl.write.WritableCellFormat(wf);
WritableFont wf1 = new jxl.write.WritableFont(WritableFont.TIMES,12, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE);
WritableCellFormat wcf1 = new jxl.write.WritableCellFormat(wf1);
//Label lbl = new Label(0,0,"宋体显示",wcf);
//sheet.mergeCells(0, 1, 1, 1);

//判断date2为空否 为空则是获取当天日期
if(date2==null||a.equals(date2)){
Date date = new Date();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//将字符串转化为时间类型。
String date1 = fmt.format(Long.valueOf(date.getTime()));
sheet.addCell(new jxl.write.Label(3, 0, "维修情况汇总表/台次("+date1+")" ,wcf));
}else
sheet.addCell(new jxl.write.Label(3, 0, "维修情况汇总表/台次("+date2+")" ,wcf));

//excel中添加数据
sheet.addCell(new jxl.write.Label(0, 1, "车辆型号" ,wcf1));
sheet.addCell(new jxl.write.Label(1, 1, "首保" ,wcf1));
sheet.addCell(new jxl.write.Label(2, 1, "索赔" ,wcf1));
sheet.addCell(new jxl.write.Label(3, 1, "保养" ,wcf1));
sheet.addCell(new jxl.write.Label(4, 1, "小修" ,wcf1));
sheet.addCell(new jxl.write.Label(5, 1, "大修" ,wcf1));
sheet.addCell(new jxl.write.Label(6, 1, "事故" ,wcf1));
sheet.addCell(new jxl.write.Label(7, 1, "返工" ,wcf1));
sheet.addCell(new jxl.write.Label(8, 1, "PDI" ,wcf1));
sheet.addCell(new jxl.write.Label(9, 1, "内修" ,wcf1));
sheet.addCell(new jxl.write.Label(10, 1, "车型汇总" ,wcf1));
//循环获取维修台次报表信息
for(int i=0;i<list.size();i++)
{
mf = (MaintainForm)list.get(i);
//sheet.mergeCells(0, i+2, 1, i+2);
sheet.addCell(new jxl.write.Label(0, i+2, mf.getCartype() ,wcf1));
sheet.addCell(new jxl.write.Label(1, i+2, mf.getShoubao() ,wcf1));
sheet.addCell(new jxl.write.Label(2, i+2, mf.getSuopei() ,wcf1));
sheet.addCell(new jxl.write.Label(3, i+2, mf.getBaoyang() ,wcf1));
sheet.addCell(new jxl.write.Label(4, i+2, mf.getXiaoxiu() ,wcf1));
sheet.addCell(new jxl.write.Label(5, i+2, mf.getDaxiu() ,wcf1));
sheet.addCell(new jxl.write.Label(6, i+2, mf.getShigu() ,wcf1));
sheet.addCell(new jxl.write.Label(7, i+2, mf.getFangong() ,wcf1));
sheet.addCell(new jxl.write.Label(8, i+2, mf.getPdi() ,wcf1));
sheet.addCell(new jxl.write.Label(9, i+2, mf.getNeixiu() ,wcf1));
sheet.addCell(new jxl.write.Label(10, i+2, mf.getChexinghuizong() ,wcf1));
}

book.write();
book.close();//关闭工作区
System.out.println("文件已创建");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//判断date2是空否 空的话运行文件夹中当天日期标志的.xls文件 否则运行获取date2日期标志的.xls文件
if(date2==null||a.equals(date2))
{

Date date = new Date();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//将字符串转化为时间类型。
String date1 = fmt.format(Long.valueOf(date.getTime()));

String name = "维修汇总台次表("+date1+").xls";
//运行打开相应.xls文件
Runtime.getRuntime().exec("cmd /c start "+"d:/excel报表/"+name);

}else{

String name = "维修汇总台次表("+date2+").xls";

Runtime.getRuntime().exec("cmd /c start "+"d:/excel报表/"+name);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: