java操作excel的方法

本文实例讲述了java操作excel的方法。分享给大家供大家参考。具体如下:

WritableWorkbook workbook = Workbook.createWorkbook(new File("d:\\output.xls"));
 WritableSheet sheet = workbook.createSheet("项目简报", 0);
 //样式
 WritableFont sonti18font = new WritableFont(WritableFont.createFont("宋体"), 18,WritableFont.BOLD);
 WritableFont sonti12font = new WritableFont(WritableFont.createFont("宋体"), 12,WritableFont.BOLD);
 WritableFont sonti12fontNoBold = new WritableFont(WritableFont.createFont("宋体"), 12,WritableFont.NO_BOLD);
 WritableCellFormat font18Subject = new WritableCellFormat (sonti18font);
 WritableCellFormat font12Subject = new WritableCellFormat (sonti12font);
 WritableCellFormat font12SubjectNoBold = new WritableCellFormat (sonti12fontNoBold);
 font18Subject.setAlignment(jxl.format.Alignment.CENTRE);
 font18Subject.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
 font18Subject.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
 font12Subject.setAlignment(jxl.format.Alignment.LEFT);
 font12Subject.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
 font12Subject.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
 font12SubjectNoBold.setAlignment(jxl.format.Alignment.LEFT);
 font12SubjectNoBold.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
 font12SubjectNoBold.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
 //样式 end
 //项目简介信息
 sheet.addCell(new Label(0, 0, projReportParam.getProj_name() + "项目简报",font18Subject));
 sheet.mergeCells(0, 0, 5, 0);
 sheet.addCell(new Label(0,1,"项目编号",font12Subject));
 sheet.addCell(new Label(1,1,projReportParam.getProj_code(),font12SubjectNoBold));
 sheet.addCell(new Label(2,1,"项目经理",font12Subject));
 sheet.addCell(new Label(3,1,projReportParam.getEmp_name(),font12SubjectNoBold));
 sheet.addCell(new Label(4,1,"立项部门",font12Subject));
 sheet.addCell(new Label(5,1,projReportParam.getDept_name(),font12SubjectNoBold));
 sheet.addCell(new Label(0,2,"计划发生成本",font12Subject));
 sheet.addCell(new Label(1,2,projReportParam.getPlan_cost(),font12SubjectNoBold));
 sheet.addCell(new Label(2,2,"实际发生成本",font12Subject));
 sheet.addCell(new Label(3,2,projReportParam.getActual_cost(),font12SubjectNoBold));
 sheet.addCell(new Label(0,3,"项目简介",font12Subject));
 sheet.addCell(new Label(1,3,projReportParam.getProj_desc(),font12SubjectNoBold));
 sheet.mergeCells(1, 3, 5, 3);
 //项目简介信息 end
 //里程碑
 sheet.addCell(new Label(0,5,"里程碑",font18Subject));
 sheet.mergeCells(0, 5, 5, 5);
 sheet.addCell(new Label(0,6,"阶段名称",font12Subject));
 sheet.addCell(new Label(1,6,"任务名称",font12Subject));
 sheet.addCell(new Label(2,6,"实施人",font12Subject));
 sheet.addCell(new Label(3,6,"计划起止时间",font12Subject));
 sheet.addCell(new Label(4,6,"实际起止时间",font12Subject));
 sheet.addCell(new Label(5,6,"状态",font12Subject));
 int i = 7;//行
 for(ProjReportParamMInfo projReportParamMInfo : projReportParam.getProjReportParamMInfoList()){
  sheet.addCell(new Label(0,i,projReportParamMInfo.getPharse_name(),font12SubjectNoBold));
  sheet.addCell(new Label(1,i,projReportParamMInfo.getTask_item(),font12SubjectNoBold));
  sheet.addCell(new Label(2,i,projReportParamMInfo.getEmp_name(),font12SubjectNoBold));
  sheet.addCell(new Label(3,i,Utils.formatDate(projReportParamMInfo.getTask_plan_sd()) + " / " + Utils.formatDate(projReportParamMInfo.getTask_plan_fd()),font12SubjectNoBold));
  sheet.addCell(new Label(4,i,Utils.formatDate(projReportParamMInfo.getTask_actual_sd()) + " / " + Utils.formatDate(projReportParamMInfo.getTask_actual_fd()),font12SubjectNoBold));
  sheet.addCell(new Label(5,i,projReportParamMInfo.getTask_state(),font12SubjectNoBold));
  i++;
 }
 //里程碑 end
 //项目组成员及干系人
 int j = 1+i;//行
 sheet.addCell(new Label(0,j,"项目组成员及干系人",font18Subject));
 sheet.mergeCells(0, j, 5, j);
 sheet.addCell(new Label(0,j+1,"序号",font12Subject));
 sheet.addCell(new Label(1,j+1,"姓名",font12Subject));
 sheet.addCell(new Label(2,j+1,"角色",font12Subject));
 sheet.addCell(new Label(3,j+1,"进入项目组时间",font12Subject));
 sheet.addCell(new Label(4,j+1,"离开项目组时间",font12Subject));
 sheet.addCell(new Label(5,j+1,"累计工时",font12Subject));
 int m = 1;//序号
 int n = j+2;//行
 for(ProjReportParamHRInfo projReportParamHRInfo : projReportParam.getProjReportParamHRInfoList()){
  sheet.addCell(new Label(0,n,m+"",font12SubjectNoBold));
  sheet.addCell(new Label(1,n,projReportParamHRInfo.getEmp_name(),font12SubjectNoBold));
  sheet.addCell(new Label(2,n,projReportParamHRInfo.getRole_name(),font12SubjectNoBold));
  sheet.addCell(new Label(3,n,Utils.formatDate(projReportParamHRInfo.getHr_start_date()),font12SubjectNoBold));
  sheet.addCell(new Label(4,n,Utils.formatDate(projReportParamHRInfo.getHr_release_date()),font12SubjectNoBold));
  sheet.addCell(new Label(5,n,projReportParamHRInfo.getTotal_manhour(),font12SubjectNoBold));
  m++;
  n++;
 }
 //项目组成员及干系人 end
 //本期工作内容
 int k = n + 1;//行
 sheet.addCell(new Label(0,k,"本期工作内容("+startDate+"至"+endDate+")",font18Subject));
 sheet.mergeCells(0, k, 6, k);
 sheet.addCell(new Label(0,k+1,"任务编号",font12Subject));
 sheet.addCell(new Label(1,k+1,"任务名称",font12Subject));
 sheet.addCell(new Label(2,k+1,"计划起止时间",font12Subject));
 sheet.addCell(new Label(3,k+1,"实际起止时间",font12Subject));
 sheet.addCell(new Label(4,k+1,"计划工时",font12Subject));
 sheet.addCell(new Label(5,k+1,"实际工时",font12Subject));
 sheet.addCell(new Label(6,k+1,"实施人员",font12Subject));
 int p = k + 2;//行
 for(ProjReportParamTaskInfo projReportParamTaskInfo : projReportParam.getThisProjReportParamTaskInfoList()){
  sheet.addCell(new Label(0,p,projReportParamTaskInfo.getTask_code(),font12SubjectNoBold));
  sheet.addCell(new Label(1,p,projReportParamTaskInfo.getTask_item(),font12SubjectNoBold));
  sheet.addCell(new Label(2,p,Utils.formatDate(projReportParamTaskInfo.getTask_plan_sd()) + " / " + Utils.formatDate(projReportParamTaskInfo.getTask_plan_fd()),font12SubjectNoBold));
  sheet.addCell(new Label(3,p,Utils.formatDate(projReportParamTaskInfo.getTask_actual_sd()) + " / " + Utils.formatDate(projReportParamTaskInfo.getTask_actual_fd()),font12SubjectNoBold));
  sheet.addCell(new Label(4,p,projReportParamTaskInfo.getTask_plan_manhour(),font12SubjectNoBold));
  sheet.addCell(new Label(5,p,projReportParamTaskInfo.getTask_actual_manhour(),font12SubjectNoBold));
  sheet.addCell(new Label(6,p,projReportParamTaskInfo.getPlan_emp_name(),font12SubjectNoBold));
  p++;
 }
 //本期工作内容 end
 //下周工作内容
 int q = p + 1;//行
 sheet.addCell(new Label(0,q,"下周工作内容",font18Subject));
 sheet.mergeCells(0, q, 5, q);
 sheet.addCell(new Label(0,q+1,"任务编号",font12Subject));
 sheet.addCell(new Label(1,q+1,"任务名称",font12Subject));
 sheet.addCell(new Label(2,q+1,"计划开始时间",font12Subject));
 sheet.addCell(new Label(3,q+1,"计划结束时间",font12Subject));
 sheet.addCell(new Label(4,q+1,"计划工时",font12Subject));
 sheet.addCell(new Label(5,q+1,"实施人员",font12Subject));
 int r = q + 2;
 for(ProjReportParamTaskInfo projReportParamTaskInfo : projReportParam.getNextProjReportParamTaskInfoList()){
  sheet.addCell(new Label(0,r,projReportParamTaskInfo.getTask_code(),font12SubjectNoBold));
  sheet.addCell(new Label(1,r,projReportParamTaskInfo.getTask_item(),font12SubjectNoBold));
  sheet.addCell(new Label(2,r,Utils.formatDate(projReportParamTaskInfo.getTask_plan_sd()),font12SubjectNoBold));
  sheet.addCell(new Label(3,r,Utils.formatDate(projReportParamTaskInfo.getTask_plan_fd()),font12SubjectNoBold));
  sheet.addCell(new Label(4,r,projReportParamTaskInfo.getTask_plan_manhour(),font12SubjectNoBold));
  sheet.addCell(new Label(5,r,projReportParamTaskInfo.getPlan_emp_name(),font12SubjectNoBold));
  r++;
 }
 //下周工作内容 end
 //项目存在的问题及解决
 int s = r + 1;//行
 sheet.addCell(new Label(0,s,"项目存在的问题及解决",font18Subject));
 sheet.mergeCells(0, s, 8, s);
 sheet.addCell(new Label(0,s+1,"识别日期",font12Subject));
 sheet.addCell(new Label(1,s+1,"问题描述",font12Subject));
 sheet.addCell(new Label(2,s+1,"所属风险",font12Subject));
 sheet.addCell(new Label(3,s+1,"解决方法",font12Subject));
 sheet.addCell(new Label(4,s+1,"解决人",font12Subject));
 sheet.addCell(new Label(5,s+1,"计划开始时间",font12Subject));
 sheet.addCell(new Label(6,s+1,"计划完成时间",font12Subject));
 sheet.addCell(new Label(7,s+1,"问题状态",font12Subject));
 sheet.addCell(new Label(8,s+1,"总结",font12Subject));
 int t = s + 2;//行
 for(ProjReportParamRiskInfo projReportParamRiskInfo : projReportParam.getProjReportParamRiskInfoList()){
  sheet.addCell(new Label(0,t,Utils.formatDate(projReportParamRiskInfo.getSts_date()),font12SubjectNoBold));
  sheet.addCell(new Label(1,t,projReportParamRiskInfo.getProj_issue_item(),font12SubjectNoBold));
  sheet.addCell(new Label(2,t,projReportParamRiskInfo.getProj_risk_item(),font12SubjectNoBold));
  sheet.addCell(new Label(3,t,projReportParamRiskInfo.getIssue_resolve_method(),font12SubjectNoBold));
  sheet.addCell(new Label(4,t,projReportParamRiskInfo.getIssue_resolve_emp(),font12SubjectNoBold));
  sheet.addCell(new Label(5,t,Utils.formatDate(projReportParamRiskInfo.getIssue_plan_date()),font12SubjectNoBold));
  sheet.addCell(new Label(6,t,Utils.formatDate(projReportParamRiskInfo.getIssue_actual_date()),font12SubjectNoBold));
  sheet.addCell(new Label(7,t,projReportParamRiskInfo.getIssue_state(),font12SubjectNoBold));
  sheet.addCell(new Label(8,t,projReportParamRiskInfo.getIssue_summarize(),font12SubjectNoBold));
  t++;
 }
 //项目存在的问题及解决 end
 workbook.write();
 workbook.close();
//生成项目简报的程序

希望本文所述对大家的java程序设计有所帮助。

(0)

相关推荐

  • Java数据导出功能之导出Excel文件实例

    在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java写入数据到excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 可以参见:http://www.jb51.net/article/686

  • 利用java操作Excel文件的方法

    很久以来都想研究一下利用java操作Excel的方法,今天没事,就稍微了解了一下,特总结一下.利用java操作Excel,有个开源的东东-jxl.jar,可以到http://sourceforge.net/projects/jexcelapi/files/下载. 一.读取Excel文件内容 复制代码 代码如下: /** *//**读取Excel文件的内容     * @param file  待读取的文件     * @return     */    public static String

  • python调用java模块SmartXLS和jpype修改excel文件的方法

    本文实例讲述了python调用java模块SmartXLS和jpype修改excel文件的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf8 -*- """ 使用java的模块SmartXLS和jpype修改excel 和xlrd,xlwt不同的是它可以生成和保持图表 """ from __future__ import print_function, division import os import jpyp

  • Java数据导入功能之读取Excel文件实例

    在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java读取excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 (1)每个单元格的位置认为是由一个二维坐标(i,j)给定,其中i表示列,j表示

  • Java解析Excel内容的方法

    本文实例讲述了Java解析Excel内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.File;  import java.io.FileInputStream;  import java.io.InputStream;  import java.util.ArrayList;  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  import org.apache.poi.ss.user

  • java编程实现根据EXCEL列名求其索引的方法

    本文实例讲述了java编程实现根据EXCEL列名求其索引的方法.分享给大家供大家参考,具体如下: 原理: [a1-z26]*26^n-1 + [a1-z26]*26^n-2 + ... + [a1-z26]*26^0 具体代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.util.HashMap; import jav

  • Windows中使用Java生成Excel文件并插入图片的方法

    生成简单的Excel文件  在现实的办公中,我们常常会有这样一个要求:要求把报表直接用excel打开.在实习中有这样一个需求.根据所选择的资源查询用户所提供附件的全部信息并生成excel供下载.但是在查询的时候我们需要来检测用户所提供的附件里面的信息是否有错误(身份证).有错误的生成错误信息excel.      Apache的POI项目,是目前比较成熟的HSSF接口,用来处理Excel对象.其实POI不仅仅只能处理excel,它还可以处理word.PowerPoint.Visio.甚至Outl

  • java使用POI读取properties文件并写到Excel的方法

    本文实例讲述了java使用POI读取properties文件并写到Excel的方法.分享给大家供大家参考.具体实现方法如下: package com.hubberspot.code; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import

  • java poi读取excel操作示例(2个代码)

    项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 复制代码 代码如下: /* * 使用POI读取EXCEL文件 */import java.io.File;import java.io.FileInputStream;import java.util.ArrayList; import org.apache.poi.hssf.usermodel.HSSFCell;impor

  • Java实现操作excel表格

    最近老师布置了个任务,用Java对excel后缀名为xlsx的文件进行简单的增,删,改,查操作:虽说是个简单的程序,可作为刚接触的我来说还是有些磕磕碰碰.不过好在还是完成了,进行一个简单的总结. 首先导入了一个poi.jar 网上有很多这个资源可以下载 XSSFSheet sheet=null; XSSFWorkbook book=null; 一:查  (查找本地指定位置的excel表格,在控制台输出) public void print_excel(){ //获取excel表格的行数 int

随机推荐