jxl对excel操作总结

  一、这是简单生成excel表格 :

主要用到以下几个类和方法: 

1.WriterableWorkbook:  通过Workbook.createdWorkbook()静态方法创建出来。 其作用是相当于excel软件界面。 

  2.WriterableSheet:  通过WritableWorkbook.createSheet()方法创建出来。 其作用相当于excel表格的页   

3.Label:  控制数据插入在表格的哪一行 new Label(0, 0, "学校")。 第一个参数为表格的列,第二个参数为表格的行数(表格是以 0,0  坐标为起始点) 第三个参数为插入内容   

4.用WritableSheet.addCell(Label label)方法为表格插入内容。   

5.把创建的内容写入到输出流中,并关闭输出流: workbook.write(); workbook.close(); os.close();

二、这是生成复杂的数据类型的excel表格。
  以下为几个数据类型的说明:
  1.Label:文本类型的类
  2.Number:数字类型的类(包括int float double)
  3.Boolean:布尔类型的类
  4.DateTime:时间类型(将表格制作成时间格式的需要用到new WritableCellFormat(DateFormats.FORMAT1)这个对象加入到DataTime里面)

三、使用模版生成新的excel表
 使用步骤:
  1.Workbook wb = Workbook.getWorkbook(new File("D:/干部个人信息采集表.xls"));//选择模版文件
  2.WritableWorkbook workbook = Workbook.createWorkbook(os,wb);//导入模版
  3.使用简单的坐标定位,对表格进行操作



四、附上最终代码(java代码)

生成复杂多样的excel表
* @param os
* @throws WriteException
* @throws IOException
*/
public void MutiStyleExcelWrite(OutputStream os) throws WriteException,IOException
{
//创建工作薄
        WritableWorkbook workbook = Workbook.createWorkbook(os);
        //创建新的一页
        WritableSheet sheet = workbook.createSheet("First Sheet", 0);
        //构建表头
        sheet.mergeCells(0, 0, 21, 0);//添加合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行
        //设置字体种类和黑体显示,字体为Arial,字号大小为10,采用黑体显示
        WritableFont bold = new WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD);
        //生成一个单元格样式控制对象
        WritableCellFormat titleFormate = new WritableCellFormat(bold);
        //单元格中的内容水平方向居中
        titleFormate.setAlignment(jxl.format.Alignment.CENTRE);
        //单元格的内容垂直方向居中
        titleFormate.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
        Label title = new Label(0,0,"干部个人信息采集表",titleFormate);
        //设置第一行的高度
        sheet.setRowView(0, 600, false);
        sheet.addCell(title);
        
        
        //创建要显示的具体内容
        sheet.mergeCells(0, 1, 21, 1);
        WritableCellFormat datetime = new WritableCellFormat(bold);
        datetime.setAlignment(jxl.format.Alignment.RIGHT);
        datetime.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
        Label date = new Label(0,1,"填表日期:     年   月   日",datetime);
        sheet.setRowView(0, 900, false);
        sheet.addCell(date);
        
        //第三行内容
        sheet.mergeCells(0, 2, 1, 2);
        Label name = new Label(0,2,"姓名");
        sheet.addCell(name);
        Label sex = new Label(2,2,"性别");
        sheet.addCell(sex);
        Label nation = new Label(3,2,"民族");
        sheet.addCell(nation);
        sheet.mergeCells(4, 2, 5, 2);
        Label originPlace = new Label(4,2,"籍贯");
        sheet.addCell(originPlace);
        sheet.mergeCells(6, 2, 7, 2);
        Label brithPlace = new Label(6,2,"出生地");
        sheet.addCell(brithPlace);
        sheet.mergeCells(8, 2, 9, 2);
        Label brithDay = new Label(8,2,"出生日期");
        sheet.addCell(brithDay);
        sheet.mergeCells(10, 2, 11, 2);
        Label armyDate = new Label(10,2,"入伍年月");
        sheet.addCell(armyDate);
        sheet.mergeCells(12, 2, 13, 2);
        Label organizationDate = new Label(12,2,"入党年月");
        sheet.addCell(organizationDate);
        sheet.mergeCells(14, 2,15, 2);
        Label politicalOutlook = new Label(14,2,"政治面貌");
        sheet.addCell(politicalOutlook);
        sheet.mergeCells(16, 2, 21, 6);
        Label photo = new Label(16,2,"照片");
        sheet.addCell(photo);
        
        //开始第四行内容
        sheet.mergeCells(0, 3, 1, 3);
        sheet.mergeCells(4, 3, 5, 3);
        sheet.mergeCells(6, 3, 7, 3);
        sheet.mergeCells(8, 3, 9, 3);
        sheet.mergeCells(10, 3, 11, 3);
        sheet.mergeCells(12, 3, 13, 3);
        sheet.mergeCells(14, 3,15, 3);
        
        
        //第五行内容
        sheet.mergeCells(0, 4, 1, 4);
        Label identity = new Label(0,4,"个人身份");
        sheet.addCell(identity);
        sheet.mergeCells(2, 4, 7, 4);
        sheet.mergeCells(8, 4, 9, 4);
        Label ID = new Label(8,4,"身份证号码");
        sheet.addCell(ID);
        sheet.mergeCells(10, 4, 15, 4);
        
        
        //第六行内容
        
        
        
        // 把创建的内容写入到输出流中,并关闭输出流
      workbook.write();
      workbook.close();
      os.close();
}





/**
* 使用模版生成新的excel表
* @param os
* @throws WriteException
* @throws IOException
*/
public void templateExcelWriter(OutputStream os) throws WriteException,IOException
{
  try {
Workbook wb = Workbook.getWorkbook(new File("D:/干部个人信息采集表.xls"));//选择模版文件
WritableWorkbook workbook = Workbook.createWorkbook(os,wb);//导入模版
WritableSheet sheet = workbook.getSheet(0);
System.out.println("名字:"+sheet.getName());
Label A1 = new Label(0,3,"侯建洪");
sheet.addCell(A1);
workbook.write();
    workbook.close();
    os.close();

} catch (BiffException e) {

e.printStackTrace();
}
}


  

你可能感兴趣的:(java,util大全)