最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java操作excel的方法

 更新時(shí)間:2015年07月14日 15:53:53   作者:愷哥  
這篇文章主要介紹了java操作excel的方法,實(shí)例分析了java針對excel文件的讀寫、打開、保存等操作技巧,需要的朋友可以參考下

本文實(shí)例講述了java操作excel的方法。分享給大家供大家參考。具體如下:

WritableWorkbook workbook = Workbook.createWorkbook(new File("d:\\output.xls")); 
 WritableSheet sheet = workbook.createSheet("項(xiàng)目簡報(bào)", 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 
 //項(xiàng)目簡介信息 
 sheet.addCell(new Label(0, 0, projReportParam.getProj_name() + "項(xiàng)目簡報(bào)",font18Subject)); 
 sheet.mergeCells(0, 0, 5, 0); 
 sheet.addCell(new Label(0,1,"項(xiàng)目編號(hào)",font12Subject)); 
 sheet.addCell(new Label(1,1,projReportParam.getProj_code(),font12SubjectNoBold)); 
 sheet.addCell(new Label(2,1,"項(xiàng)目經(jīng)理",font12Subject)); 
 sheet.addCell(new Label(3,1,projReportParam.getEmp_name(),font12SubjectNoBold)); 
 sheet.addCell(new Label(4,1,"立項(xiàng)部門",font12Subject)); 
 sheet.addCell(new Label(5,1,projReportParam.getDept_name(),font12SubjectNoBold)); 
 sheet.addCell(new Label(0,2,"計(jì)劃發(fā)生成本",font12Subject)); 
 sheet.addCell(new Label(1,2,projReportParam.getPlan_cost(),font12SubjectNoBold)); 
 sheet.addCell(new Label(2,2,"實(shí)際發(fā)生成本",font12Subject)); 
 sheet.addCell(new Label(3,2,projReportParam.getActual_cost(),font12SubjectNoBold)); 
 sheet.addCell(new Label(0,3,"項(xiàng)目簡介",font12Subject)); 
 sheet.addCell(new Label(1,3,projReportParam.getProj_desc(),font12SubjectNoBold)); 
 sheet.mergeCells(1, 3, 5, 3); 
 //項(xiàng)目簡介信息 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,"任務(wù)名稱",font12Subject)); 
 sheet.addCell(new Label(2,6,"實(shí)施人",font12Subject)); 
 sheet.addCell(new Label(3,6,"計(jì)劃起止時(shí)間",font12Subject)); 
 sheet.addCell(new Label(4,6,"實(shí)際起止時(shí)間",font12Subject)); 
 sheet.addCell(new Label(5,6,"狀態(tài)",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 
 //項(xiàng)目組成員及干系人 
 int j = 1+i;//行 
 sheet.addCell(new Label(0,j,"項(xiàng)目組成員及干系人",font18Subject)); 
 sheet.mergeCells(0, j, 5, j); 
 sheet.addCell(new Label(0,j+1,"序號(hào)",font12Subject)); 
 sheet.addCell(new Label(1,j+1,"姓名",font12Subject)); 
 sheet.addCell(new Label(2,j+1,"角色",font12Subject)); 
 sheet.addCell(new Label(3,j+1,"進(jìn)入項(xiàng)目組時(shí)間",font12Subject)); 
 sheet.addCell(new Label(4,j+1,"離開項(xiàng)目組時(shí)間",font12Subject)); 
 sheet.addCell(new Label(5,j+1,"累計(jì)工時(shí)",font12Subject)); 
 int m = 1;//序號(hào) 
 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++; 
 } 
 //項(xiàng)目組成員及干系人 end 
 //本期工作內(nèi)容 
 int k = n + 1;//行 
 sheet.addCell(new Label(0,k,"本期工作內(nèi)容("+startDate+"至"+endDate+")",font18Subject)); 
 sheet.mergeCells(0, k, 6, k); 
 sheet.addCell(new Label(0,k+1,"任務(wù)編號(hào)",font12Subject)); 
 sheet.addCell(new Label(1,k+1,"任務(wù)名稱",font12Subject)); 
 sheet.addCell(new Label(2,k+1,"計(jì)劃起止時(shí)間",font12Subject)); 
 sheet.addCell(new Label(3,k+1,"實(shí)際起止時(shí)間",font12Subject)); 
 sheet.addCell(new Label(4,k+1,"計(jì)劃工時(shí)",font12Subject)); 
 sheet.addCell(new Label(5,k+1,"實(shí)際工時(shí)",font12Subject)); 
 sheet.addCell(new Label(6,k+1,"實(shí)施人員",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++; 
 } 
 //本期工作內(nèi)容 end 
 //下周工作內(nèi)容 
 int q = p + 1;//行 
 sheet.addCell(new Label(0,q,"下周工作內(nèi)容",font18Subject)); 
 sheet.mergeCells(0, q, 5, q); 
 sheet.addCell(new Label(0,q+1,"任務(wù)編號(hào)",font12Subject)); 
 sheet.addCell(new Label(1,q+1,"任務(wù)名稱",font12Subject)); 
 sheet.addCell(new Label(2,q+1,"計(jì)劃開始時(shí)間",font12Subject)); 
 sheet.addCell(new Label(3,q+1,"計(jì)劃結(jié)束時(shí)間",font12Subject)); 
 sheet.addCell(new Label(4,q+1,"計(jì)劃工時(shí)",font12Subject)); 
 sheet.addCell(new Label(5,q+1,"實(shí)施人員",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++; 
 } 
 //下周工作內(nèi)容 end 
 //項(xiàng)目存在的問題及解決 
 int s = r + 1;//行 
 sheet.addCell(new Label(0,s,"項(xiàng)目存在的問題及解決",font18Subject)); 
 sheet.mergeCells(0, s, 8, s); 
 sheet.addCell(new Label(0,s+1,"識(shí)別日期",font12Subject)); 
 sheet.addCell(new Label(1,s+1,"問題描述",font12Subject)); 
 sheet.addCell(new Label(2,s+1,"所屬風(fēng)險(xiǎn)",font12Subject)); 
 sheet.addCell(new Label(3,s+1,"解決方法",font12Subject)); 
 sheet.addCell(new Label(4,s+1,"解決人",font12Subject)); 
 sheet.addCell(new Label(5,s+1,"計(jì)劃開始時(shí)間",font12Subject)); 
 sheet.addCell(new Label(6,s+1,"計(jì)劃完成時(shí)間",font12Subject)); 
 sheet.addCell(new Label(7,s+1,"問題狀態(tài)",font12Subject)); 
 sheet.addCell(new Label(8,s+1,"總結(jié)",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++; 
 } 
 //項(xiàng)目存在的問題及解決 end 
 workbook.write(); 
 workbook.close(); 
//生成項(xiàng)目簡報(bào)的程序

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • SpringBoot讀取自定義配置文件方式(properties,yaml)

    SpringBoot讀取自定義配置文件方式(properties,yaml)

    這篇文章主要介紹了SpringBoot讀取自定義配置文件方式(properties,yaml),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MyBatis Plus配置日志CRUD的使用詳解

    MyBatis Plus配置日志CRUD的使用詳解

    這篇文章主要介紹了MyBatis Plus配置日志,CRUD的使用,,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring?Boot?2.6.x整合Swagger啟動(dòng)失敗報(bào)錯(cuò)問題的完美解決辦法

    Spring?Boot?2.6.x整合Swagger啟動(dòng)失敗報(bào)錯(cuò)問題的完美解決辦法

    這篇文章主要給大家介紹了關(guān)于Spring?Boot?2.6.x整合Swagger啟動(dòng)失敗報(bào)錯(cuò)問題的完美解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接

    IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接

    這篇文章主要介紹了IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接,文中通過圖文及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot整合Guava Cache實(shí)現(xiàn)全局緩存的示例代碼

    SpringBoot整合Guava Cache實(shí)現(xiàn)全局緩存的示例代碼

    這篇文章主要介紹了SpringBoot整合Guava Cache實(shí)現(xiàn)全局緩存,Guava Cache是Google Guava庫中的一個(gè)模塊,提供了基于內(nèi)存的本地緩存實(shí)現(xiàn),文中介紹了SpringBoot整合使用Guava Cache的具體步驟,需要的朋友可以參考下
    2024-03-03
  • Java中String字符串常量池和intern方法源碼分析

    Java中String字符串常量池和intern方法源碼分析

    在之前的文章中,小編給大家介紹了String字符串的不可變性及其實(shí)現(xiàn)原理,其中給大家提到了字符串常量池的概念,那么什么是常量池,String字符串與常量池有什么關(guān)系,本文給大家嘮嘮字符串常量池及String#intern()方法的作用,需要的朋友可以參考下
    2023-05-05
  • 在MyBatis中使用接口映射的步驟詳解

    在MyBatis中使用接口映射的步驟詳解

    在MyBatis中使用接口映射是一種基于Java接口而非XML映射文件的方式來綁定SQL查詢和操作,這種方法使用注解來指定SQL語句,并將其直接關(guān)聯(lián)到接口方法上,本文給大家介紹了在MyBatis中使用接口映射的步驟,需要的朋友可以參考下
    2024-06-06
  • Spring Boot外部化配置實(shí)戰(zhàn)解析

    Spring Boot外部化配置實(shí)戰(zhàn)解析

    這篇文章主要介紹了Spring Boot外部化配置實(shí)戰(zhàn)解析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能

    Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能

    本篇文章主要介紹了Java實(shí)現(xiàn)畫線、矩形、橢圓、字符串功能的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java?CAS與Atomic原子操作核心原理詳解

    Java?CAS與Atomic原子操作核心原理詳解

    CAS(Compare?and?Swap)和Atomic原子操作是保證多線程并發(fā)安全的常用機(jī)制,能夠高效地實(shí)現(xiàn)對共享變量的安全訪問和修改,避免線程競爭導(dǎo)致的數(shù)據(jù)不一致和死鎖等問題。它們的應(yīng)用可以提高程序的并發(fā)性能和可維護(hù)性,是多線程編程中的重要工具
    2023-04-04

最新評(píng)論

拉孜县| 太仆寺旗| 沁阳市| 潞西市| 东山县| 绥宁县| 关岭| 怀宁县| 清流县| 林周县| 阿瓦提县| 册亨县| 枣庄市| 博客| 新丰县| 渝中区| 马鞍山市| 清原| 进贤县| 唐山市| 永川市| 政和县| 北海市| 保靖县| 永善县| 黄梅县| 沈阳市| 盐山县| 游戏| 苍溪县| 凤城市| 萝北县| 望奎县| 万盛区| 宣武区| 资溪县| 临泽县| 文登市| 山东| 昌平区| 澎湖县|