java操作office和pdf文件java读取word,excel和pdf文档内容

By admin in bet体育在线网址手机版 on 2018年10月16日

动Apache开源项目POI实现数据库多少导出excel报表的学识。其实际Java世界里,有个别仿成熟之开源工具支持对Excel文件之操作:一个凡Apache POI;另一个虽说是本文将介绍的Java Excel API。Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读/写功能。该品种分为几独零件,其中包括一个HSSF的零部件,它是一个百般标准和谨慎的API。利用HSSF,你可据此纯Java代码来读取、写副、修改Excel文件 。Java Excel API(JXL),它是同法纯粹以Java开发的Excel表格操作组件,使用她,即使以非Windows操作系统产,程序员也得透过纯 Java 应用来创建Excel文件,并能读取,写副,更新Excel中之情节,因此,基于JXL可以兑现对数据库被多少导入导出的操作。与POI相比,JXL拥有双重粗之内存占用率和针对汉语更好的支撑,所以马上篇文字我们便来拘禁一下数据库数据导入导出基于JXL的措施。顺便介绍一下jxl跟POI的区分。其实从规律上,个人感觉这简单种办法特别一般,就连代码也挺像。下面我们尽管来拘禁一下简易的操作步骤吧。

债券、非标、PPP方面,财政部由此50如泣如诉文、87号文对PPP、政府采购服务、投资基金等融资办法进行限定,传统的贷款、信托、资管等渠道也大幅度收紧。金融监管趋严,银行缩表,资金从表外回流表内,对于表外理财进一步限制,相关中低等级的国债券配债需求与非标融资进一步收缩。

报表生成类:ComplexExportExcelClient.java

南京与甘肃两地的政府公共财政收入总共同比增速17年吧都以低位运行,政府财政收入增长缺乏动力,2018年财政收入增速也将减慢。江苏省和甘肃省的地方政府性基金收入在2016年起显著的提高(右轴为甘肃省相应的地方政府性基金收益)。根据南京市统计局之数码,发现南京市2017年年内财政收入下滑较充分,尤其是2017年下半年,跌幅较生。

 Excel中杀重点之等同组成部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI
 提供了这些支持。这些操作相对比较简单,下面就介绍一下系的API。

政府性基金收益要缘于土地出让收入,房地产市场之投资情况万分挺程度上决定了政府性基金收益之轻重。考虑到2018年房地产继续降温,销售与土地出让持续走小,假而全年土地出让增速从30%下挫到-15%,2018年全国性政府性基金收益增速由2017年之27~30%降落至-13%。下表为我们当债市国策对周刊中测算的2018年政府性基金收益状况。

1. 创新的Excel工作薄

1)    取消西固区、九州开发区、高坪偏远区域的居室限购政策。

 

叩问微信:905793635

 

出入金无费用。

 

南京房地产开发投资、房屋新动工面积、住宅销售面积、住宅销售额四起数据都处于下行区间。2017年上半年的话,除房地产开发投资额,其余数据累计同比增速均为负。房地产投资动力不足,房地产销售量价齐跌。兰州地区房地产市场呈现类似,住宅销售面积和住房销售额总计同于均为负值。两地的楼市限制政策效益明摆着,房地产市场之无所谓局面将抑制2018年政府性基金收入之增强。 

fOut.close(); 

推广

5.描绘副数据并关闭文件  

汇率固定7

以JXL:3000漫长全体出,并且内存还有21M底空间.

大多地面政府财政平衡有着压力,未来说不定由此放宽房地产限制政策增多政府收入:一再被披露的违规借贷和虚增财政收入,表明地方政府之财政压力过特别并无是个别现象。同时为体现出中央政府对防控风险更加是金融风险的誓,对地方当局债务监管越来越加严,地方政府借款融资渠道约束将进而严峻。个别债务较高、财政收入增速放慢的区域在符合国家总体房地产调控大政方针下,进行一定水准上的区域性结构性支持政策是在可能的。

 WritableSheet.setColumnView( int  i, int  width);

不论过夜费。

 

可转债

1. 援POI包读取word文档内容

以至于2017年11月最终,全国地方政府债务余额165,944亿首。其中,一般债务104,109亿初,专项债务61,835亿长;政府债券147,125亿冠,非政府债券形式存量政府债务18,819亿正。据wind统计,2018年到期之内阁债券8400亿,到期规模比2017年增2.5倍增。并且有的省份融资平台债务增长比较快,从中债资信披露的8只省融资平台2013年6月交2016年12月之欠债统计情况来拘禁,7个省区增长1.5倍及8.0倍增不顶,政府隐性负债规模拒绝小视。归结来拘禁,政府负债端压力比充分,而政府的资金来源主要也财政收入、政府性基金收益,以及城投债、非标融资及信托贷款、PPP融资等,因此当局出于充裕的动力增强低收入。

  // 作用是自(m,n)到(p,q)的才元格全部集合,比如: 
  WritableSheet sheet = book.createSheet(“第一页”, 0 );

预留5美金

sheet.addCell(label); 

地方当局财政平衡有着压力或部分区域放宽楼市限制政策的案由:即全国地方政府债务余额庞大,截至2017年11月末,全国地方当局债务余额165,944亿头条,
2018年截稿的当局债券8400亿,同时政府隐性负债规模呢拒绝轻视。而政府的资金来源主要也财政收入、政府性基金收益,以及城投债、非标融资及信托贷款、PPP融资等。而预计2018年财政收入增速将缓缓,房地产市场的继续降温使得政府性基金收益不容乐观,非标融资等平台被严格监管,地方当局财政压力比较生。

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import org.pdfbox.pdfparser.PDFParser;     
  4. import org.pdfbox.pdmodel.PDDocument;     
  5. import org.pdfbox.util.PDFTextStripper;     
  6.   
  7. /**  
  8. *  
  9. * @author 曹胜欢 
  10. */   
  11. <pre name=”code” class=”java”>public class PdfFile{     
  12.   
  13.     public String getContent(File f) throws Exception {     
  14.         FileInputStream fis = new FileInputStream(f);     
  15.         PDFParser p = new PDFParser(fis);     
  16.         p.parse();     
  17.         PDDocument pdd = p.getPDDocument();     
  18.         PDFTextStripper ts = new PDFTextStripper();     
  19.         String c = ts.getText(pdd);     
  20.         pdd.close();     
  21.         fis.close();     
  22.         return c;     
  23.     }     
  24. }</pre><br>  

列地方陆续出现违规借贷、虚报财政收入的场面:2017年年初辽宁确认财政数据造假,经济数据为注入水分,今年新春,经财政审计部门往往核算,内蒙古减少2016年相像公共预算收入530亿元,占总量之26.3%,同时调整2017年收支预算预期目标。调减后,2017年全区一般公共预算收入1703.4亿长,比2016年宣布数据下降14.4%,剔除虚增空转因素后比增长14.6%。2017年12月08日,审计署在《2017年第三季度国家重点政策措施贯彻落实情况跟审计结果》中发布部分所在违规借贷或虚增资产。江西、陕西、甘肃、湖南、海南5独省的5独市县通过出具承诺函等违规借贷政府性债务64.32亿首届。云南、湖南、吉林、重庆4只省之10只购买县(区)虚增财政收入15.49亿首位。

 

但是私人订制

利用POI:运行到2800长达左右即便报内存溢出.

图片 1

 

一样、 南京放宽限购吸引人才,兰州落实分类调控、因域施策:

  // 将率先排的增幅设为30 
  sheet.setColumnView( 0 , 30 );

数被披露的违规借贷和虚增财政收入,表明地方政府之财政压力过特别并无是个别现象。并且为反映出中央政府对防控风险越来越是金融风险的决心,对地方政府债务监管进一步加严,地方当局借债融资渠道约束将越来越严格。一旦在正过去的12月,《财政部有关坚决抑制地方政府违法违规借贷遏制隐性债务增量情况的喻》称:为了坚决制止地方政府违法违规借贷、遏制隐性债务增量,将坚定不移祛除地方政府当中央政府会否债务“买只”的“幻觉”,坚决消除金融机构认为中央政府会兜底地方债务的“幻觉”,进一步证明了中央对地方当局之严监管决心。

1. 引用POI包读取word文档内容

图片 2

     Apache POI 是故Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读与描写的成效。Apache POI 是创办同维护操作各种可Office Open XML(OOXML)标准及微软的OLE 2复合文档格式(OLE2)的Java API。用它们好以Java读取和创建,修改MS Excel文件.而且,还得使Java读取和创办MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。 下面我们来拘禁一下Apache POI 中提供的几怪片段的图:

图片 3

由提供的职能的情

2)   
城关区、七里河区、安宁区限制外(含高新区、经济区,不包括高新区榆中园区)的居室继续执行限购政策,但不再提供社保证明与缴税证明。

 

南京松限购吸引人才,兰州落实分类调控、因域施策:南京之松限购主要是指向知识型、技术型人才,是诱惑人口逾是红颜流入的政策措施,同时可能产生修复房地产市场的目的。兰州取消市内偏远地区的限购政策,放宽城区限购条件,同时以城区实施限售政策。兰州本次的调控政策,主要反映于对市内的差区域实行不同的调控政策,郊区房地产库存还于高,放宽限购能满足部分住宅需要,而市内限售则是指向对之遏制,是针对“抓好房地产分类调控”的践行。

book.close(); 

2018年地方当局融资约将更加严格,中央严控金融风险的姿态坚决。地方当局面临偿还到期债务压力的以,融资端给严格界定。个别地方当局存在必然财政平衡的下压力,不破个别区域地方当局于全国整体的调控政策下,通过结构性政策鼓励购房,拉动区域内地产销售从而有助于土地出让提高来缓解一定水平达之财政平衡压力的恐怕。咱们觉得10年想国债收益率以在3.8%到4.0%距离波动。 

 

2018年伊始,南京、兰州出现楼市政策新取向,纷纷放宽限购政策。但眼前房地产政策之基调是维稳,中央经济工作会议为事关:“保持房地产市场调控策略连续性和安居”。加上去年放款限购政策的城池,长沙、武汉、西安、济南、苏州昆山和郑州,目前早已至少有8个都市放款限购政策。在策略维稳的导向下,各城市陆续推广限购措施的原故是什么?后续还有什么样城市有或出台放宽限购政策?我们以在后文进行详细分析:

关于Excle的一对操作:

其次、  部分都楼市轻微松绑或出自地方当局财政压力:

 

2018年地方政府债务约趋紧的背景下,地方当局亟需控制负债率,压缩负债。而地方政府过去举新债还借债的主意拿不得持续,融资渠道为给予为种种限制,财政收入增速放慢,目前提高政府收入的有效措施就是增长政府性基金收益,而其中土地出让收入而占到政府性基金收益之80%之上,所以有些地方政府通过放宽限制政策修复房地产市场以期提高我收入。

http://nchc.dl.sourceforge.net/project/jexcelapi/CSharpJExcel/CSharpJExcel.zip

2018年1月5日,兰州市住房保障与房产管理局、兰州市物价局、兰州市不动产登记管理局当三机关一道发《关于提高房地产市场调控强化房地产市场监管有关工作的通报》,通知主要内容连:

1.创立一个工作薄

高风险提示:个券相关公司业绩不及预期。

脚我们虽来简单看一下这些jar包的针对文档的读取的动实例:

季、 
多地区阁财政平衡有着压力,未来或由此放宽房地产限制政策增多政府收入:

 

2018年1月4日,南京市委1如泣如诉文件《关于建设富有全球影响力创新名城的几政策措施》出炉,文件中涉嫌:“调整人才落户政策,允许研究生以上学历及
40
寒暑以下的本科学历人才,以及持高级工及以上职业资格证书的技能、技能型人才先落户再就业。”与上年出台放宽限购政策的几乎死城市一如既往,南京底放宽限购主要是针对知识型、技术型人才,是抓住人越来越是姿色流入的政策措施。不过各城市怎么以2017年过后才幡然意识及人才的重要,通过放宽限制方针引发人才,政策之目的绝不单单是吸引人才。

 

当局财政收入以及本土经济前行不无关系,主要来源企业利润。而2017年经济企稳、PPI上涨,2018年去下能政策或会见有着放宽,中上游企业净利润增速或用稳中有落,财政收入增速为以减速。截至2017年11月,公共财政收入累计值为161,747.86亿初次,累计同比加快为8.40%,较2017年10月回落0.83个百分点;地方本级财政收入累计值为84,358亿首位,累计同比增速也8.70%,较上月下滑1只百分点。

图片 4

加盟QQ:1478537718

  1. WritableFont font1 =   
  2.   new  WritableFont(WritableFont.TIMES, 16 ,WritableFont.BOLD); ①  
  3.   
  4.  WritableCellFormat format1 = new  WritableCellFormat(font1); ②  
  5.   
  6.  Label label = new  Label( 0 , 0 ,”data  4  test”,format1) ③   

南京、兰州房地产表现低迷,南京财政收入年内下降明显:南京同兰州还是房地产投资动力不足,住宅销售量价齐跌的景象。另外,两进地方政府财政收入增速稳定,2018年呢面临加快减缓压力;南京市2017年土地出让收入较2016年起下降,两置办在也增进政府收入要放松楼市限制条件的或者。

http://labs.renren.com/apache-mirror/pdfbox/1.1.0/pdfbox-1.1.0.jar 
http://apache.etoak.com/pdfbox/1.1.0/pdfbox-1.1.0.jar 
http://apache.freelamp.com/pdfbox/1.1.0/pdfbox-1.1.0.jar

正文

HSSFSheet sheet = workbook.createSheet(“工资表”); 

债市策略

 

为此,根据前述分析,咱俩当,个别债务较高、财政收入增速放慢的区域在符合国家总体房地产调控大政方针下,进行一定水平上的区域性结构性支持政策是是可能的。2017年之,住建部会议提出,“抓好房地产分类调控”是2018年要需要做好的工作有。各地段以地方外房地产市场是差别,对不同区域进行归类调控是所在政府之最主要工作。正而兰州本次在市内偏远地区放宽限购政策,而以市区推行限售政策,就是不言而喻的归类调控作为。而预计为拿有个别地段,会以分拣调控的方针政策下对地方有区域实行楼市支持性政策。而根据财政部之决算公告,截至2016年最后,全国之总负债率为36.7%,贵州、青海、云南、辽宁、海南和宁夏底负债率超过全国平均水平。其中天津、山西同广西负债率增长比较快,增速分别吗29.2%、13.1%跟12.9%。而江苏债务高臻10915.35亿老大,成为首只破万亿状元之省份,同时江苏底财政收入也有大幅下挫。而基本与同等丝都,放宽限制政策的可能性则非怪。

 

2018年伊始,南京、兰州起楼市政策新取向,纷纷放宽限购政策。但时房地产政策的基调是维稳,中央经济工作会为干:“保持房地产市场调控政策连续性和安静”。加上去年放款限购政策的城池,长沙、武汉、西安、济南、苏州昆山同郑州,目前已经至少发生8个都市放款限购政策。在方针维稳的导向下,各城市陆续推广限购措施之来头是啊?后续还有哪些城市来或出台放宽限购政策?我们以在后文进行详细分析:

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import jxl.Cell;     
  4. import jxl.Sheet;     
  5. import jxl.Workbook;     
  6.   
  7. /**  
  8. *  
  9. * @author 曹胜欢 
  10. */   
  11. public class XlsFile{     
  12.   
  13.     @Override     
  14.     public String getContent(File f) throws Exception {     
  15.      //构建Workbook对象, 只读Workbook对象  
  16.      //直接由地方文件创建Workbook  
  17.       //从输入流创建Workbook  
  18.   
  19.         FileInputStream fis = new FileInputStream(f);     
  20.         StringBuilder sb = new StringBuilder();     
  21.         jxl.Workbook rwb = Workbook.getWorkbook(fis);     
  22. //一旦创立了Workbook,我们就算足以经过她来访问  
  23. //Excel Sheet的数组集合(术语:工作表),  
  24. //也足以调用getsheet方法得到指定的工钱表  
  25.         Sheet[] sheet = rwb.getSheets();     
  26.         for (int i = 0; i < sheet.length; i++) {     
  27.             Sheet rs = rwb.getSheet(i);     
  28.             for (int j = 0; j < rs.getRows(); j++) {     
  29.                Cell[] cells = rs.getRow(j);     
  30.                for(int k=0;k<cells.length;k++)     
  31.                sb.append(cells[k].getContents());     
  32.             }     
  33.         }     
  34.         fis.close();     
  35.         return sb.toString();     
  36.     }     
  37.   
  38. }  

2018年地方当局融资约将越发严酷,中央严控金融风险的情态坚决。地方当局面临偿还到期债务压力的又,融资端给严格限定。个别地方政府有必然财政平衡的压力,不免除个别区域地方政府在举国上下整体的调控策略下,通过结构性政策鼓励购房,拉动区域内地产销售从而有助于土地出让提高来缓解一定程度达到的财政平衡压力的可能。咱们觉得10年要国债收益率以以3.8%交4.0%区间波动。

4.创单元格

图片 5

FileOutputStream fOut = new FileOutputStream(outputFile);

東亚世外期管家国际期货招商

 ②处在代码应用了WritableCellFormat类,这个看似非常关键,通过它可指定单元格的各种
 属性,后面的单元格格式化中见面发出双重多描述。

图片 6

3.引用PDFBox读取pdf文档的内容

兰州收回市内偏远地方的限购政策,放宽城区限购条件,同时在市区推行限售政策。兰州此次的调控策略,主要反映在针对市内的不比区域实行不同之调控策略,郊区房地产库存还较高,放宽限购能满足部分居室需求,而市内限售则是针对对之制止,是对准“抓好房地产分类调控”的践行。

Label label=new Label(0,0,”test”); 

星期一沪深片购得及向变动,尾盘上证综指上涨0.52%,深证成指上涨0.35%。上周转债市场迎来久违大涨且转债表现有些优于正股表现,一方面沪深片买进“春季躁动”对转债个券形成支撑,另一方面情绪好转直接照射到转债股性估值水平,单周出现显著的踊跃升,已经修复及我们的对象水平10%附近。从绝对价格来拘禁即两到家整体小幅肯定,部分标的已经立及120头条开始挑战130头条提前赎回线。短期来拘禁市场情绪还处于比较佳状态,但以起了片初的变型。第一估值可能继承修补,但小平价个券可能变为主力,估值估值主要受到情绪和市面供需的熏陶,情绪是当前促进估值修复的机要动力,后续供需将会晤接完,进入2018年的话转债还免有新券发行,预计要发标的发行节奏已经遭到加2017年年报业绩的烦扰,后续一段时间转债供给节奏有望明显迟缓,预计股性估值仍旧有小幅走扩空间。从内部结构看,低价个券将会明白收益,高价单券受条款影响估值修复空间相对少,低价格低溢价率“双低”个券有望变成持续估值修复的主力,溢价率曲线有望再次陡峭化。第二我们建议可以将片高价或近年来增长率比快个券仓位部分易至低价标的,但依然用做正股基本面择券,无论情绪高涨或是估值继续走扩,未来供还是灰犀牛存在,因此留下一卖清醒未尝不好,把握正股基本面仍是我们政策的着力。最后我们重新重申当前主动有为之方针,具体标的依旧关注宝信转债、林洋转债、三平转债、国贸转债、生益转债、金禾转债、雨虹转债、桐昆EB、国祯转债以及冲击下底经济个券。

 

老三、  南京、兰州房地产表现低迷,南京财政收入年内降低明显:

  // 作用是指定第i+1行之莫大,比如:

3)   
对城关区、七里河区、安宁区、西固区限定外(含高新区、经济区、九州开发区,不包高新区榆中园区)的宅院实施限售。个人以上述区域外请之居室,自取得《不动产权证书》登记记簿日期满三年得以上市交易。

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import org.apache.poi.hwpf.HWPFDocument;     
  4. import org.apache.poi.hwpf.usermodel.Range;     
  5.   
  6. /**  
  7. *  
  8. * @author 曹胜欢 
  9. */   
  10. public class DocFile{     
  11.   
  12.   
  13.     @Override   
  14.     public String getContent(File f) throws Exception {     
  15.         FileInputStream fis = new FileInputStream(f);     
  16.         HWPFDocument doc = new HWPFDocument(fis);     
  17.         Range rang = doc.getRange();     
  18.         String text = rang.text();     
  19.         fis.close();     
  20.         return text;     
  21.     }     

图片 7

EXCEL报表工具类:ExportExcel.java

图片 8

XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功效。  

投资中心

  WritableSheet.mergeCells( int  m, int  n, int  p, int  q); 

HSSF - 提供读写Microsoft Excel XLS格式档案的效力。  

 

HWPF - 提供读写Microsoft Word DOC格式档案的效果。  

2.创立一个工作表

2、单元格操作

HDGF - 提供读Microsoft Visio格式档案的效应。  

 

JXL相对弱了点.没有供诸如POI那样复杂的机能,比如添加图片功能。所以要是要是实现之效用于复杂的情形下得设想使用POI

HSMF - 提供读Microsoft Outlook格式档案的功能。 

 

5.新建一输出文件流,把相应的Excel工作簿 输出及地方

当Excel工作簿中构筑平工作表,其名为缺省值。POI中还提供了另外的一部分其它的workbook 构造方法。下面我们来拘禁一下:

HSSFWorkbook workbook = new HSSFWorkbook();

数据量3000长条数,每条60列.JVM虚拟机内存大小64M.

jxl.write.Number number=new
jxl.write.Number(1,0,123.123);sheet.addCell(number); 

 

于凡应用程序中,对office和pdf文档进行读取数据是比较宽泛的功用,尤其当众多web应用程序中。所以今天我们尽管简单来拘禁一下Java本着word、excel、pdf文件的读取。本篇博客只是讲解简单用。如果想深入摸底原理。请读者自行钻研一些有关源码。

2.引用jxl包读取excel文档的情

2.生走红也“第一页”的工作表,参数0表示即是率先页  

 

操作了,关闭文件  

 

  // 将首先执之可观要为200 
  sheet.setRowView( 0 , 200 );

HSLF - 提供读写Microsoft PowerPoint格式档案的效用。  

打JVM虚拟机内存消耗的情况.

      OK,在吃单元格设置下从数据库被读取的数量。这样咱们就算得将数据库里的情导入到excel了。当然这里我们只是简单的介绍了有的POI的用法。并没有细讲,比如安单元格里面数据的格式。单元格的部分性能设置。这些用会晤以自下的例证中之所以到。也终于给大家有些示范吧。好了。最后看一个实例吧:

fOut.flush();

是因为方代码我们能:一旦获得了Sheet,我们便足以经过它们来访问Excel Cell(术语:单元格)。参考下面的代码有:
//获取第一执行,第一排列的价值
Cell c00 = rs.getCell(0, 0);
String strc00 = c00.getContents();
//获取第一实践,第二列的值
Cell c10 = rs.getCell(1, 0);
String strc10 = c10.getContents();
当您做到对Excel电子表格数据的拍卖后,一定要是使用close()方法来关闭先前创的靶子,以释放读取数据表的经过被所占用的内存空间,在读取大量多少常常显得更关键。

poi.jar 下载地址

 

jxl下充斥地址:http://www.andykhan.com/jexcelapi/download.html 

 

3.创建行

 

  // 合并第一排第一尽及第六列第一行之所有单元格 
  sheet.mergeCells( 0 , 0 , 5 , 0 );

 在索引0的职位创建行(最上面的推行)  

当寻觅引0的职创建单元格(左上端)  

率先来打探一下 Apache POI

 

Fontbox.jar下载地址

   // 把水平对齐方式指定为位于中 
  format1.setAlignment(jxl.format.Alignment.CENTRE);

jxl还出任何的有力量,比如插入图片等,这里就不再一一介绍,读者可以协调探索。

WritableSheet sheet=book.createSheet(“第一页”,0); 

 1)、 合并单元格

 

POI和jxl区别:

4.拿定义好的只有元格添加到办事表中  

可想而知,在针对内存的损耗点差距要挺大的.

  1. package com.bzu.search.action;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7.   
  8. import org.apache.poi.hssf.usermodel.HSSFCell;  
  9. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  10. import org.apache.poi.hssf.usermodel.HSSFFont;  
  11. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
  12. import org.apache.poi.hssf.usermodel.HSSFRow;  
  13. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  14. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  15. import org.apache.poi.hssf.util.HSSFColor;  
  16. import org.apache.poi.hssf.util.Region;  
  17.   
  18. /** 
  19.  * EXCEL报表工具类. 
  20.  *  
  21.  * @author caoyb 
  22.  * @version $Revision:$ 
  23.  */  
  24. public class ExportExcel {  
  25.   
  26.     private HSSFWorkbook wb = null;  
  27.   
  28.     private HSSFSheet sheet = null;  
  29.   
  30.     /** 
  31.      * @param wb 
  32.      * @param sheet 
  33.      */  
  34.     public ExportExcel(HSSFWorkbook wb, HSSFSheet sheet) {  
  35.         super();  
  36.         this.wb = wb;  
  37.         this.sheet = sheet;  
  38.     }  
  39.   
  40.     /** 
  41.      * @return the sheet 
  42.      */  
  43.     public HSSFSheet getSheet() {  
  44.         return sheet;  
  45.     }  
  46.   
  47.     /** 
  48.      * @param sheet 
  49.      *            the sheet to set 
  50.      */  
  51.     public void setSheet(HSSFSheet sheet) {  
  52.         this.sheet = sheet;  
  53.     }  
  54.   
  55.     /** 
  56.      * @return the wb 
  57.      */  
  58.     public HSSFWorkbook getWb() {  
  59.         return wb;  
  60.     }  
  61.   
  62.     /** 
  63.      * @param wb 
  64.      *            the wb to set 
  65.      */  
  66.     public void setWb(HSSFWorkbook wb) {  
  67.         this.wb = wb;  
  68.     }  
  69.   
  70.     /** 
  71.      * 创建通用EXCEL头部 
  72.      *  
  73.      * @param headString 
  74.      *            头部显示的字符 
  75.      * @param colSum 
  76.      *            该表的列数 
  77.      */  
  78.     public void createNormalHead(String headString, int colSum) {  
  79.   
  80.         HSSFRow row = sheet.createRow(0);  
  81.   
  82.         // 设置第一实行  
  83.         HSSFCell cell = row.createCell(0);  
  84.         row.setHeight((short) 400);  
  85.   
  86.         // 定义单元格也字符串类型  
  87.         cell.setCellType(HSSFCell.ENCODING_UTF_16);  
  88.         cell.setCellValue(new HSSFRichTextString(“南京市区各个网点进件统计报表”));  
  89.   
  90.         // 指定合并区域  
  91.         sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) colSum));  
  92.   
  93.         HSSFCellStyle cellStyle = wb.createCellStyle();  
  94.   
  95.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中针对齐  
  96.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中针对齐  
  97.         cellStyle.setWrapText(true);// 指定单元格自动换行  
  98.   
  99.         // 设置单元格字体  
  100.         HSSFFont font = wb.createFont();  
  101.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  102.         font.setFontName(“宋体”);  
  103.         font.setFontHeight((short) 300);  
  104.         cellStyle.setFont(font);  
  105.   
  106.         cell.setCellStyle(cellStyle);  
  107.     }  
  108.   
  109.     /** 
  110.      * 创建通用报表第二行 
  111.      *  
  112.      * @param params 
  113.      *            统计标准数组 
  114.      * @param colSum 
  115.      *            需要统一到的列索引 
  116.      */  
  117.     public void createNormalTwoRow(String[] params, int colSum) {  
  118.         HSSFRow row1 = sheet.createRow(1);  
  119.         row1.setHeight((short) 300);  
  120.   
  121.         HSSFCell cell2 = row1.createCell(0);  
  122.   
  123.         cell2.setCellType(HSSFCell.ENCODING_UTF_16);  
  124.         cell2.setCellValue(new HSSFRichTextString(“统计时:” + params[0] + “至”  
  125.                 + params[1]));  
  126.   
  127.         // 指定合并区域  
  128.         sheet.addMergedRegion(new Region(1, (short) 0, 1, (short) colSum));  
  129.   
  130.         HSSFCellStyle cellStyle = wb.createCellStyle();  
  131.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中针对齐  
  132.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中针对齐  
  133.         cellStyle.setWrapText(true);// 指定单元格自动换行  
  134.   
  135.         // 设置单元格字体  
  136.         HSSFFont font = wb.createFont();  
  137.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  138.         font.setFontName(“宋体”);  
  139.         font.setFontHeight((short) 250);  
  140.         cellStyle.setFont(font);  
  141.   
  142.         cell2.setCellStyle(cellStyle);  
  143.   
  144.     }  
  145.   
  146.     /** 
  147.      * 设置报表标题 
  148.      *  
  149.      * @param columHeader 
  150.      *            标题字符串数组 
  151.      */  
  152.     public void createColumHeader(String[] columHeader) {  
  153.   
  154.         // 设置列头  
  155.         HSSFRow row2 = sheet.createRow(2);  
  156.   
  157.         // 指定行高  
  158.         row2.setHeight((short) 600);  
  159.   
  160.         HSSFCellStyle cellStyle = wb.createCellStyle();  
  161.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
  162.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
  163.         cellStyle.setWrapText(true);// 指定单元格自动换行  
  164.   
  165.         // 单元格字体  
  166.         HSSFFont font = wb.createFont();  
  167.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  168.         font.setFontName(“宋体”);  
  169.         font.setFontHeight((short) 250);  
  170.         cellStyle.setFont(font);  
  171.   
  172.         /* 
  173.          * cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单无格的边框为粗体 
  174.          * cellStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色. 
  175.          * cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); 
  176.          * cellStyle.setLeftBorderColor(HSSFColor.BLACK.index); 
  177.          * cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); 
  178.          * cellStyle.setRightBorderColor(HSSFColor.BLACK.index); 
  179.          * cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); 
  180.          * cellStyle.setTopBorderColor(HSSFColor.BLACK.index); 
  181.          */  
  182.   
  183.         // 设置单元格背景色  
  184.         cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);  
  185.         cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
  186.   
  187.         HSSFCell cell3 = null;  
  188.   
  189.         for (int i = 0; i < columHeader.length; i++) {  
  190.             cell3 = row2.createCell(i);  
  191.             cell3.setCellType(HSSFCell.ENCODING_UTF_16);  
  192.             cell3.setCellStyle(cellStyle);  
  193.             cell3.setCellValue(new HSSFRichTextString(columHeader[i]));  
  194.         }  
  195.   
  196.     }  
  197.   
  198.     /** 
  199.      * 创建内容单元格 
  200.      *  
  201.      * @param wb 
  202.      *            HSSFWorkbook 
  203.      * @param row 
  204.      *            HSSFRow 
  205.      * @param col 
  206.      *            short型的列索引 
  207.      * @param align 
  208.      *            对齐方式 
  209.      * @param val 
  210.      *            列值 
  211.      */  
  212.     public void cteateCell(HSSFWorkbook wb, HSSFRow row, int col, short align,  
  213.             String val) {  
  214.         HSSFCell cell = row.createCell(col);  
  215.         cell.setCellType(HSSFCell.ENCODING_UTF_16);  
  216.         cell.setCellValue(new HSSFRichTextString(val));  
  217.         HSSFCellStyle cellstyle = wb.createCellStyle();  
  218.         cellstyle.setAlignment(align);  
  219.         cell.setCellStyle(cellstyle);  
  220.     }  
  221.   
  222.     /** 
  223.      * 创建合计行 
  224.      *  
  225.      * @param colSum 
  226.      *            需要联合及之列索引 
  227.      * @param cellValue 
  228.      */  
  229.     public void createLastSumRow(int colSum, String[] cellValue) {  
  230.   
  231.         HSSFCellStyle cellStyle = wb.createCellStyle();  
  232.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐  
  233.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐  
  234.         cellStyle.setWrapText(true);// 指定单元格自动换行  
  235.   
  236.         // 单元格字体  
  237.         HSSFFont font = wb.createFont();  
  238.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  239.         font.setFontName(“宋体”);  
  240.         font.setFontHeight((short) 250);  
  241.         cellStyle.setFont(font);  
  242.   
  243.         HSSFRow lastRow = sheet.createRow((short) (sheet.getLastRowNum() + 1));  
  244.         HSSFCell sumCell = lastRow.createCell(0);  
  245.   
  246.         sumCell.setCellValue(new HSSFRichTextString(“合计”));  
  247.         sumCell.setCellStyle(cellStyle);  
  248.         sheet.addMergedRegion(new Region(sheet.getLastRowNum(), (short) 0,  
  249.                 sheet.getLastRowNum(), (short) colSum));// 指定合并区域  
  250.   
  251.         for (int i = 2; i < (cellValue.length + 2); i++) {  
  252.             sumCell = lastRow.createCell(i);  
  253.             sumCell.setCellStyle(cellStyle);  
  254.             sumCell.setCellValue(new HSSFRichTextString(cellValue[i – 2]));  
  255.   
  256.         }  
  257.   
  258.     }  
  259.   
  260.     /** 
  261.      * 输入EXCEL文件 
  262.      *  
  263.      * @param fileName 
  264.      *            文件名 
  265.      */  
  266.     public void outputExcel(String fileName) {  
  267.         FileOutputStream fos = null;  
  268.         try {  
  269.             fos = new FileOutputStream(new File(fileName));  
  270.             wb.write(fos);  
  271.             fos.close();  
  272.         } catch (FileNotFoundException e) {  
  273.             e.printStackTrace();  
  274.         } catch (IOException e) {  
  275.             e.printStackTrace();  
  276.         }  
  277.     }  
  278. }  

 

cell.setCellType(HSSFCell.CELL_TYPE_STRING); 

 合并既可是横向的,也得是纵向的。合并后的单纯元格不克再展开联,否则会沾异常。

http://apache.etoak.com/pdfbox/1.1.0/fontbox-1.1.0.jar 
http://labs.renren.com/apache-mirror/pdfbox/1.1.0/fontbox-1.1.0.jar 
http://apache.freelamp.com/pdfbox/1.1.0/fontbox-1.1.0.jar

2.引用jxl包读取excel文档的情节

Jempbox.jar下载地址

 

 

脚我们便同样步一步之来拘禁一下什么创建一个excel报表:

1、 字串格式化

 

 字符串的格式化涉及到的凡书、粗细、字号等因素,这些力量要出于WritableFont和
 WritableCellFormat类来担负。假设我们在变化一个富含字串的唯有元格时,使用如下语句,
 为利叙述,我们呢各个一样实行命令加了号:

骨干步骤:

  1. package com.bzu.search.action;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import org.apache.poi.hssf.usermodel.HSSFCell;  
  7. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  8. import org.apache.poi.hssf.usermodel.HSSFFont;  
  9. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
  10. import org.apache.poi.hssf.usermodel.HSSFRow;  
  11. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  12. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  13. import org.apache.poi.hssf.util.Region;  
  14.   
  15. /** 
  16.  * 拒绝件报表生成类. 
  17.  *  
  18.  * @author caoyb 
  19.  * @version $Revision:$ 
  20.  */  
  21. public class ComplexExportExcelClient {  
  22.   
  23.     private static HSSFWorkbook wb = new HSSFWorkbook();  
  24.   
  25.     private static HSSFSheet sheet = wb.createSheet();  
  26.   
  27.     @SuppressWarnings({ “unchecked”, “deprecation” })  
  28.     public static void main(String[] args) {  
  29.   
  30.         ExportExcel exportExcel = new ExportExcel(wb, sheet);  
  31.   
  32.         // 创建列标头LIST  
  33.         List fialList = new ArrayList();  
  34.   
  35.         fialList.add(“申请人未提供任何联系方式”);  
  36.         fialList.add(“无工作单位信息都未供收入来源信息”);  
  37.         fialList.add(“有工作单位而不提供单位地址或电话”);  
  38.         fialList.add(“家庭地址缺失”);  
  39.         fialList.add(“客户身份证明资料少”);  
  40.         fialList.add(“签名缺失或者签署不符合要求”);  
  41.         fialList.add(“其它”);  
  42.   
  43.         List errorList = new ArrayList();  
  44.   
  45.         errorList.add(“客户主动取消”);  
  46.         errorList.add(“个人征信不良”);  
  47.         errorList.add(“欺诈申请”);  
  48.         errorList.add(“申请人基本条件不符”);  
  49.         errorList.add(“申请材料不合规”);  
  50.         errorList.add(“无法正常完成征信”);  
  51.         errorList.add(“重复申请”);  
  52.         errorList.add(“其他”);  
  53.   
  54.         // 计算该表的列数  
  55.         int number = 2 + fialList.size() * 2 + errorList.size() * 2;  
  56.   
  57.         // 给工作表列定义列宽(实际行使自己改变列数)  
  58.         for (int i = 0; i < number; i++) {  
  59.             sheet.setColumnWidth(i, 3000);  
  60.         }  
  61.   
  62.         // 创建单元格样式  
  63.         HSSFCellStyle cellStyle = wb.createCellStyle();  
  64.   
  65.         // 指定单元格居中对齐  
  66.         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);  
  67.   
  68.         // 指定单元格垂直居中对齐  
  69.         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  
  70.   
  71.         // 指定当单元格内容显示不产时自动换行  
  72.         cellStyle.setWrapText(true);  
  73.   
  74.         // 设置单元格字体  
  75.         HSSFFont font = wb.createFont();  
  76.         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  77.         font.setFontName(“宋体”);  
  78.         font.setFontHeight((short) 200);  
  79.         cellStyle.setFont(font);  
  80.   
  81.         // 创建报表头部  
  82.         exportExcel.createNormalHead(“南京地区报名材料拒件分析统计”, number);  
  83.   
  84.         // 设置第二履行  
  85.         String[] params = new String[] { ”    年  月  日”, ”  年  月  日” };  
  86.         exportExcel.createNormalTwoRow(params, number);  
  87.   
  88.         // 设置列头  
  89.         HSSFRow row2 = sheet.createRow(2);  
  90.   
  91.         HSSFCell cell0 = row2.createCell(0);  
  92.         cell0.setCellStyle(cellStyle);  
  93.         cell0.setCellValue(new HSSFRichTextString(“机构代码”));  
  94.   
  95.         HSSFCell cell1 = row2.createCell(1);  
  96.         cell1.setCellStyle(cellStyle);  
  97.         cell1.setCellValue(new HSSFRichTextString(“支行名称”));  
  98.   
  99.         HSSFCell cell2 = row2.createCell(2);  
  100.         cell2.setCellStyle(cellStyle);  
  101.         cell2.setCellValue(new HSSFRichTextString(“无效件”));  
  102.   
  103.         HSSFCell cell3 = row2.createCell(2 * fialList.size() + 2);  
  104.         cell3.setCellStyle(cellStyle);  
  105.         cell3.setCellValue(new HSSFRichTextString(“拒绝件”));  
  106.   
  107.         HSSFRow row3 = sheet.createRow(3);  
  108.   
  109.         // 设置行高  
  110.         row3.setHeight((short) 800);  
  111.   
  112.         HSSFCell row3Cell = null;  
  113.         int m = 0;  
  114.         int n = 0;  
  115.   
  116.         // 创建不同之LIST的列标题  
  117.         for (int i = 2; i < number; i = i + 2) {  
  118.   
  119.             if (i < 2 * fialList.size() + 2) {  
  120.                 row3Cell = row3.createCell(i);  
  121.                 row3Cell.setCellStyle(cellStyle);  
  122.                 row3Cell.setCellValue(new HSSFRichTextString(fialList.get(m)  
  123.                         .toString()));  
  124.                 m++;  
  125.             } else {  
  126.                 row3Cell = row3.createCell(i);  
  127.                 row3Cell.setCellStyle(cellStyle);  
  128.                 row3Cell.setCellValue(new HSSFRichTextString(errorList.get(n)  
  129.                         .toString()));  
  130.                 n++;  
  131.             }  
  132.   
  133.         }  
  134.   
  135.         // 创建最后一排列的磋商列  
  136.         row3Cell = row3.createCell(number);  
  137.         row3Cell.setCellStyle(cellStyle);  
  138.         row3Cell.setCellValue(new HSSFRichTextString(“合计”));  
  139.   
  140.         // 合并单元格  
  141.         HSSFRow row4 = sheet.createRow(4);  
  142.   
  143.         // 合并第三执行到第五执行之率先排  
  144.         sheet.addMergedRegion(new Region(2, (short) 0, 4, (short) 0));  
  145.   
  146.         // 合并第三实践及第五履的第二排列  
  147.         sheet.addMergedRegion(new Region(2, (short) 1, 4, (short) 1));  
  148.   
  149.         // 合并第三执之老三列到第AA指定的列  
  150.         int aa = 2 * fialList.size() + 1;  
  151.         sheet.addMergedRegion(new Region(2, (short) 2, 2, (short) aa));  
  152.   
  153.         int start = aa + 1;  
  154.   
  155.         sheet.addMergedRegion(new Region(2, (short) start, 2,  
  156.                 (short) (number – 1)));  
  157.   
  158.         // 循环合并第四实行的实行,并且是各2列合并成为一排列  
  159.         for (int i = 2; i < number; i = i + 2) {  
  160.             sheet.addMergedRegion(new Region(3, (short) i, 3, (short) (i + 1)));  
  161.   
  162.         }  
  163.   
  164.         // 根据列数奇偶数的不等创建不同的列标题  
  165.         for (int i = 2; i < number; i++) {  
  166.             if (i < 2 * fialList.size() + 2) {  
  167.   
  168.                 if (i % 2 == 0) {  
  169.                     HSSFCell cell = row4.createCell(i);  
  170.                     cell.setCellStyle(cellStyle);  
  171.                     cell.setCellValue(new HSSFRichTextString(“无效量”));  
  172.                 } else {  
  173.                     HSSFCell cell = row4.createCell(i);  
  174.                     cell.setCellStyle(cellStyle);  
  175.                     cell.setCellValue(new HSSFRichTextString(“占比”));  
  176.                 }  
  177.             } else {  
  178.                 if (i % 2 == 0) {  
  179.                     HSSFCell cell = row4.createCell(i);  
  180.                     cell.setCellStyle(cellStyle);  
  181.                     cell.setCellValue(new HSSFRichTextString(“拒绝量”));  
  182.                 } else {  
  183.                     HSSFCell cell = row4.createCell(i);  
  184.                     cell.setCellStyle(cellStyle);  
  185.                     cell.setCellValue(new HSSFRichTextString(“占比”));  
  186.                 }  
  187.             }  
  188.   
  189.         }  
  190.   
  191.         // 循环创建中的仅元格的个的值  
  192.         for (int i = 5; i < number; i++) {  
  193.             HSSFRow row = sheet.createRow((short) i);  
  194.             for (int j = 0; j <= number; j++) {  
  195.                 exportExcel  
  196.                         .cteateCell(wb, row, (short) j,  
  197.                                 HSSFCellStyle.ALIGN_CENTER_SELECTION, String  
  198.                                         .valueOf(j));  
  199.             }  
  200.   
  201.         }  
  202.   
  203.         // 创建最后一行的说道行  
  204.         String[] cellValue = new String[number – 1];  
  205.         for (int i = 0; i < number – 1; i++) {  
  206.             cellValue[i] = String.valueOf(i);  
  207.   
  208.         }  
  209.         exportExcel.createLastSumRow(1, cellValue);  
  210.   
  211.         exportExcel.outputExcel(“c:\\驳回件统计.xls”);  
  212.   
  213.     }  
  214. }  

如要新建一名吧”工资表”的工作表,其报告句也:  

 

book.write();

  // 作用是指定第i+1列的大幅度,比如:

HPBF - 提供读Microsoft Publisher格式档案的作用。  

3.引用PDFBox读取pdf文档的情节

当单元格中输入有情节  

WritableWorkbook book=Workbook.createWorkbook(new File(“测试.xls”)); 

HSSFCell cell = row.createCell((short) 0);

workbook.write(fOut);

http://labs.renren.com/apache-mirror/pdfbox/1.1.0/jempbox-1.1.0.jar 
http://apache.etoak.com/pdfbox/1.1.0/jempbox-1.1.0.jar 
http://apache.freelamp.com/pdfbox/1.1.0/jempbox-1.1.0.jar

 

cell.setCellValue(“增加值”); 

 其中①指定了许串格式:字体为TIMES,字号16,加多少显示。WritableFont有非常丰富的
 构造子,供不同情况下用,jExcelAPI的java-doc中产生详实列表,这里不再列出。

 

  WritableSheet.setRowView( int  i, int  height);

咱简要介绍了java读取word,excel和pdf文档内容 ,但每当实质上开支中,我们因而到最多的凡管数据库中数据导出excel报表形式。不仅仅简单的读取office中之数据.尤其是以产管理还是财务系统有效的死去活来常见,因为这些网时常要开有表打印的做事。而数据导出的格式一般是EXCEL或者PDF 。所以今天咱们来简单看一下行使Apache  POI实现数据库被多少导出excel报表。在Java着生广大兑现数据导出excel报表的老三方jar包。但当可比了转深感要POI相对来说比较好用。如果大家想学习外的导出方式可自动钻研一下。

 

想必是由JXL在针对资源回收利用方面举行的尚不行不错的.

Jxl.jar下载地址

  // 把垂直对齐方式指定为身处中 
  format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

     
 本节咱们所设上学的凡POI对excel的操作。所以我们才待用到HSSF 这片情节即可以了。其他的求大家自行钻研吧。哈哈。

说到底来拘禁一个多少例子:

Pdfbox.jar下载地址

 2)、 行高以及列宽

HSSFRow row = sheet.createRow(0);

 

 

3.创造单元格。在Label对象的构造方法中指明单元格位置是首先排列第一尽(0,0)以及单元格内容也test 

http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip 
http://apache.etoak.com/poi/release/bin/poi-bin-3.6-20091214.zip 
http://labs.renren.com/apache-mirror/poi/release/bin/poi-bin-3.6-20091214.zip

 

Jxl提供了一个特地创造数字型的只是元格,生成一个封存数字之无非元格必须运用Number的总体包路径,否则发生语法歧义单元格位置是次排,第一实践,值也123.123*/

  1. import java.io.File;  
  2. import java.io.FileOutputStream;  
  3. import java.io.OutputStream;  
  4. import java.sql.Connection;  
  5. import java.sql.DriverManager;  
  6. import java.sql.ResultSet;  
  7. import java.sql.SQLException;  
  8. import java.sql.Statement;  
  9. import jxl.Workbook;  
  10. import jxl.write.Label;  
  11. import jxl.write.WritableCellFormat;  
  12. import jxl.write.WritableFont;  
  13. import jxl.write.WritableSheet;  
  14. import jxl.write.WritableWorkbook;  
  15. public class DateToExcel {  
  16.  private String driverClass = “com.mysql.jdbc.Driver”;  
  17.  private String url = “jdbc:MySQL://localhost/boutiquecourse”;  
  18.  private String user = “root”;  
  19.  private String password = “”;  
  20.  private Connection connection;  
  21.  public void exportClassroom(OutputStream os) {  
  22.   try {  
  23.    WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件  
  24.    WritableSheet wsheet = wbook.createSheet(“测试转换”, 0); // 工作表名称  
  25.    //设置Excel字体  
  26.    WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,  
  27.     WritableFont.BOLD, false,  
  28.    jxl.format.UnderlineStyle.NO_UNDERLINE,  
  29.    jxl.format.Colour.BLACK);  
  30.    WritableCellFormat titleFormat = new WritableCellFormat(wfont);  
  31.      
  32.    String[] title = { “测试编号”, “测试名称”};//如果还有字段的话,以此类推  
  33.    // 设置Excel表头  
  34.    for (int i = 0; i < title.length; i++) {  
  35.     Label excelTitle = new Label(i, 0, title[i], titleFormat);  
  36.     wsheet.addCell(excelTitle);  
  37.    }  
  38.    int c = 1; // 用于循环时Excel的行号  
  39.    Connection con = openConnection();  
  40.    Statement st = con.createStatement();  
  41.    String sql = “select * from test”;  
  42.    ResultSet rs = st.executeQuery(sql); // 这个是自数据库中拿走而导出的多寡  
  43.    while (rs.next()) {  
  44.     Label content1 = new Label(0, c, (String) rs.getString(“testid”));  
  45.     Label content2 = new Label(1, c, (String) rs.getString(“testname”));  
  46.     //如果还有的话,以此类推  
  47.     wsheet.addCell(content1);  
  48.     wsheet.addCell(content2);  
  49.     //如果还有的话,以此类推  
  50.     c++;  
  51.    }  
  52.    wbook.write(); // 写副文件  
  53.    wbook.close();  
  54.    os.close();  
  55.    System.out.println(“导入成功!”);  
  56.   } catch (Exception e) {  
  57.    e.printStackTrace();  
  58.   }  
  59.  }  
  60.  public Connection openConnection() throws SQLException {  
  61.   try {  
  62.    Class.forName(driverClass).newInstance();  
  63.    connection = DriverManager.getConnection(url, user, password);  
  64.    return connection;  
  65.   } catch (Exception e) {  
  66.    throw new SQLException(e.getMessage());  
  67.   }  
  68.  }  
  69.  public void closeConnection() {  
  70.   try {  
  71.    if (connection != null)  
  72.     connection.close();  
  73.   } catch (Exception e) {  
  74.    e.printStackTrace();  
  75.   }  
  76.  }  
  77.  public static void main(String[] args) {  
  78.   DateToExcel te = new DateToExcel();  
  79.   File f = new File(“D:/kk.xls”);  
  80.   //File f = new File(“D:\\kk.xls”);  
  81.   try {  
  82.    f.createNewFile();  
  83.    OutputStream os = new FileOutputStream(f);  
  84.    te.exportClassroom(os);  
  85.   } catch (Exception e) {  
  86.    e.printStackTrace();  
  87.   }  
  88.  }  
  89. }  

概念单元格为字符串类型,这个字符串类型也可是于创造单元格里面安装。

先是我们来认一下读取相关文档的jar包:

 ③处使用了Label类的构造子,指定了许串被予以那种格式。

每当WritableCellFormat类中,还有一个百般重要之章程是指定数量的对齐方式,比如对准我们
 上面的实例,可以指定:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 mobile.365-838.com 版权所有