POI操作Excel_第1页
POI操作Excel_第2页
POI操作Excel_第3页
POI操作Excel_第4页
POI操作Excel_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

888期货入门网整理HTTP/WWWQIHUOKAIHUWCOMPOI操作EXCEL(转载)JAVA当初把核心处理设成UNICODE,带来的好处是另代码适应了多语言环境。然而由于老外的英语只有26个字母,有些情况下,一些程序员用8位的BYTE处理,一不小心就去掉了CJK的高位。或者是由于习惯在程序中采用硬编码,还有多种原因,使得许多JAVA应用在CJK的处理上很烦恼。期货开户流程还好在POIHSSF中考虑到这个问题,可以设置ENCODING为双字节。POI可以到WWWAPACHEORG下载到。编译好的JAR主要有这样4个POI包,POIBROWSER包,POIHDF包,POIHSSF例程包。实际运行时,需要有POI包就可以了。如果用JAKARTAANT编译和运行,下载APACHEJAKARTAPOI的RELEASE中的SRC包,它里面已经为你生成好了BUILD文件了。只要运行ANT就可以了ANT的安装和使用在此不说了。如果是用JBUILDER运行,请在新建的项目中加入POI包。以JBUILDER6为例,选择TOOLS菜单项的CONFIGLIBRARIES选项,新建一个LIB。在弹出的菜单中选择POI包,如这个JAKARTAPOI151FINAL20020820JAR,把POI添加到JBUILDER中。然后,右键点击你的项目,在PROJECT的PROPERTIES菜单中PATH的REQUIREDLIBRARIES中,点ADD,添加刚才加入到JBUILDER中的POI到你现在的项目中。如果你仅仅是为了熟悉POIHSSF的使用,可以直接看POI的SAMPLES包中的源代码,并且运行它。HSSF的各种对象都有例程的介绍。HSSF提供的例程在ORGAPACHEPOIHSSFUSERMODELEXAMPLES包中,共有14个,生成的目标XLS都是WORKBOOKXLS。如果你想看更多的例程,可以参考HSSF的JUNITTESTCASES,在POI的包的源代码中有。HSSF都有测试代码。这里只对部分例程的实现做介绍。HSSF提供给用户使用的对象在ORGAPACHEPOIHSSFUSERMODEL包中,主要部分包括EXCELL对象,样式和格式,期货如何开户还有辅助操作。有以下几种对象HSSFWORKBOOKEXCELL的文档对象HSSFSHEETEXCELL的表单HSSFROWEXCELL的行HSSFCELLEXCELL的格子单元HSSFFONTEXCELL字体HSSFNAME名称HSSFDATAFORMAT日期格式在POI17中才有以下2项888期货入门网整理HTTP/WWWQIHUOKAIHUWCOMHSSFHEADERSHEET头HSSFFOOTERSHEET尾和这个样式HSSFCELLSTYLECELL样式辅助操作包括HSSFDATEUTIL日期HSSFPRINTSETUP打印HSSFERRORCONSTANTS错误信息表仔细看ORGAPACHEPOIHSSF包的结构,不难发现HSSF的内部实现遵循的是MVC模型。这里我用ROSE把ORGAPACHEPOIHSSFUSERMODEL包中的对象反向导入并根据相互关系作了整理,详见下面两图图1基本对象从中不难可以发现每一个基本对象都关联了一个RECORD对象。RECORD对象是一个参考OFFICE格式的相关记录。图2HSSFWORKBOOKHSSFWORKBOOK即是一个EXCELL对象。这幅类图体现的是HSSFWORKBOOK和基本对象的相互关系。可见,期货入门许多对象中也建立了WORKBOOK的引用。还需要注意的是在HSSFWORKBOOK和HSSFSHEET中建立了LOG机制POILOGGER,而且POILOGGER也是使用APACHELOG4J实现的。先看POI的EXAMPLES包中提供的最简单的例子,建立一个空XLS文件。JAVAVIEWPLAINCOPYPRINT1JAVA代码2IMPORTORGAPACHEPOIHSSFUSERMODELHSSFWORKBOOK34IMPORTJAVAIOFILEOUTPUTSTREAM888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM56IMPORTJAVAIOIOEXCEPTION78PUBLICCLASSNEWWORKBOOK9101112PUBLICSTATICVOIDMAINSTRINGARGS1314THROWSIOEXCEPTION15161718HSSFWORKBOOKWBNEWHSSFWORKBOOK/建立新HSSFWORKBOOK对象1920FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“2122WBWRITEFILEOUT/把WORKBOOK对象输出到文件WORKBOOKXLS中2324FILEOUTCLOSE252627282930通过这个例子,商品期货开户我们建立的是一个空白的XLS文件(不是空文件)。在此基础上,我们可以进一步看其它的例子。3132IMPORTORGAPACHEPOIHSSFUSERMODEL3334IMPORTJAVAIOFILEOUTPUTSTREAM3536IMPORTJAVAIOIOEXCEPTION3738PUBLICCLASSCREATECELLS888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM39404142PUBLICSTATICVOIDMAINSTRINGARGS4344THROWSIOEXCEPTION45464748HSSFWORKBOOKWBNEWHSSFWORKBOOK/建立新HSSFWORKBOOK对象4950HSSFSHEETSHEETWBCREATESHEET“NEWSHEET“/建立新的SHEET对象5152/CREATEAROWANDPUTSOMECELLSINITROWSARE0BASED5354HSSFROWROWSHEETCREATEROWSHORT0/建立新行5556/CREATEACELLANDPUTAVALUEINIT5758HSSFCELLCELLROWCREATECELLSHORT0/建立新CELL5960CELLSETCELLVALUE1/设置CELL的整数类型的值6162/ORDOITONONELINE6364ROWCREATECELLSHORT1SETCELLVALUE12/设置CELL浮点类型的值6566ROWCREATECELLSHORT2SETCELLVALUE“TEST“/设置CELL字符类型的值6768ROWCREATECELLSHORT3SETCELLVALUETRUE/设置CELL布尔类型的值6970HSSFCELLSTYLECELLSTYLEWBCREATECELLSTYLE/建立新的CELL样式7172CELLSTYLESETDATAFORMATHSSFDATAFORMATGETFORMAT“M/D/YYHMM“/设置CELL样式为定制的日期格式888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM7374HSSFCELLDCELLROWCREATECELLSHORT47576DCELLSETCELLVALUENEWDATE/设置CELL为日期类型的值7778DCELLSETCELLSTYLECELLSTYLE/设置该CELL日期的显示格式7980HSSFCELLCSCELLROWCREATECELLSHORT58182CSCELLSETENCODINGHSSFCELLENCODING_UTF_16/设置CELL编码解决中文高位字节截断8384CSCELLSETCELLVALUE“中文测试_CHINESEWORDSTEST“/设置中西文结合字符串8586ROWCREATECELLSHORT6SETCELLTYPEHSSFCELLCELL_TYPE_ERROR/建立错误CELL8788/WRITETHEOUTPUTTOAFILE8990FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“9192WBWRITEFILEOUT9394FILEOUTCLOSE9596979899100我稍微修改了原来的EXAMPLES包中的CREATECELLS类写了上面的功能测试类。通过这个例子,我们可以清楚的看到XLS文件从大到小包括了HSSFWORKBOOKHSSFSHEETHSSFROWHSSFCELL这样几个对象。我们可以在CELL中设置各种类型的值。尤其要注意的是如果你想正确的显示非欧美的字符时,尤其象中日韩这样的语言,必须股指期货开户设置编码为16位的即是HSSFCELLENCODING_UTF_16,才能保证字符的高8位不被截断而引起编码失真形成乱码。101888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM102其他测试可以通过参考EXAMPLES包中的测试例子掌握POI的详细用法,包括字体的设置,CELL大小和低纹的设置等。需要注意的是POI是一个仍然在完善中的公开代码的项目,所以有些功能正在不断的扩充。如HSSFSHEET的GETFOOTERGETHEADER和SETFOOTERHSSFFOOTERHSFSETHEADERHSSFHEADERHSH是在POI17中才有的,而POI15中就没有。运行测试熟悉代码或者使用它做项目时请注意POI的版本。103104另外需要注意的是HSSF也有它的对XLS基于事件的解析。可以参考例程中的EVENTEXAMPLEJAVA。它通过实现HSSFLISTENER完成从普通流认知XLS中包含的内容,在APACHECOCOON中的ORGAPACHECOCOONSERIALIZATIONHSSFSERIALIZER中用到了这个解析。因为COCOON2是基于事件的,所以POI为了提供快速的解析也提供了相应的事件。当然我们自己也可以实现这个事件接口。105106因为POI还不是一个足够成熟的项目,所以有必要做进一步的开发和测试。但是它已经为我们用纯JAVA操作OLE2对象提供了可能,而且克服了OLE对象调用的缺陷,提供了服务器端的EXCEL解决方案。107108109利用JAVA创建和读取EXCEL文档110111为了保证示例程序的运行,必须安装JAVA2SDK140和JAKARTAPOI,JAKARTAPOI的WEB站点是HTTP/JAKARTAAPACHEORG/POI/112113114示例1将演示如何利用JAKARTAPOIAPI创建EXCEL文档。115116117示例1程序如下118IMPORTORGAPACHEPOIHSSFUSERMODELHSSFWORKBOOK119IMPORTORGAPACHEPOIHSSFUSERMODELHSSFSHEET120IMPORTORGAPACHEPOIHSSFUSERMODELHSSFROW121IMPORTORGAPACHEPOIHSSFUSERMODELHSSFCELL122IMPORTJAVAIOFILEOUTPUTSTREAM123PUBLICCLASSCREATEXL124/EXCEL文件要存放的位置,假定在D盘JTEST目录下/125PUBLICSTATICSTRINGOUTPUTFILE“D/JTEST/GONGYEXLS“888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM126PUBLICSTATICVOIDMAINSTRINGARGV127128TRY129130/创建新的EXCEL工作簿131HSSFWORKBOOKWORKBOOKNEWHSSFWORKBOOK132/在EXCEL工作簿中建一工作表,其名为缺省值133/如要新建一名为“效益指标“的工作表,其语句为134/HSSFSHEETSHEETWORKBOOKCREATESHEET“效益指标“135HSSFSHEETSHEETWORKBOOKCREATESHEET136/在索引0的位置创建行(最顶端的行)137HSSFROWROWSHEETCREATEROWSHORT0138/在索引0的位置创建单元格(左上端)139HSSFCELLCELLROWCREATECELLSHORT0140/定义单元格为字符串类型141CELLSETCELLTYPEHSSFCELLCELL_TYPE_STRING142/在单元格中输入一些内容143CELLSETCELLVALUE“增加值“144/新建一输出文件流145FILEOUTPUTSTREAMFOUTNEWFILEOUTPUTSTREAMOUTPUTFILE146/把相应的EXCEL工作簿存盘147WORKBOOKWRITEFOUT148FOUTFLUSH149/操作结束,关闭文件150FOUTCLOSE151SYSTEMOUTPRINTLN“文件生成“152153154CATCHEXCEPTIONE155SYSTEMOUTPRINTLN“已运行XLCREATE“E156157158159160888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM161读取EXCEL文档中的数据162示例2将演示如何读取EXCEL文档中的数据。假定在D盘JTEST目录下有一个文件名为GONGYEXLS的EXCEL文件。163示例2程序如下164IMPORTORGAPACHEPOIHSSFUSERMODELHSSFWORKBOOK165IMPORTORGAPACHEPOIHSSFUSERMODELHSSFSHEET166IMPORTORGAPACHEPOIHSSFUSERMODELHSSFROW167IMPORTORGAPACHEPOIHSSFUSERMODELHSSFCELL168IMPORTJAVAIOFILEINPUTSTREAM169PUBLICCLASSREADXL170/EXCEL文件的存放位置。注意是正斜线/171PUBLICSTATICSTRINGFILETOBEREAD“D/JTEST/GONGYEXLS“172PUBLICSTATICVOIDMAINSTRINGARGV173TRY174/创建对EXCEL工作簿文件的引用175HSSFWORKBOOKWORKBOOKNEWHSSFWORKBOOKNEWFILEINPUTSTREAMFILETOBEREAD176/创建对工作表的引用。177/本例是按名引用(让我们假定那张表有着缺省名“SHEET1“)178HSSFSHEETSHEETWORKBOOKGETSHEET“SHEET1“179/也可用GETSHEETATINTINDEX按索引引用,180/在EXCEL文档中,第一张工作表的缺省索引是0,181/其语句为HSSFSHEETSHEETWORKBOOKGETSHEETAT0182/读取左上端单元183HSSFROWROWSHEETGETROW0184HSSFCELLCELLROWGETCELLSHORT0185/输出单元内容,CELLGETSTRINGCELLVALUE就是取所在单元的值186SYSTEMOUTPRINTLN“左上端单元是“CELLGETSTRINGCELLVALUE187CATCHEXCEPTIONE188SYSTEMOUTPRINTLN“已运行XLREAD“E189190191192193194设置单元格格式888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM195在这里,我们将只介绍一些和格式设置有关的语句,我们假定WORKBOOK就是对一个工作簿的引用。在JAVA196197中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式1981991、创建字体,设置其为红色、粗体200HSSFFONTFONTWORKBOOKCREATEFONT201FONTSETCOLORHSSFFONTCOLOR_RED202FONTSETBOLDWEIGHTHSSFFONTBOLDWEIGHT_BOLD2032、创建格式204HSSFCELLSTYLECELLSTYLEWORKBOOKCREATECELLSTYLE205CELLSTYLESETFONTFONT2063、应用格式207HSSFCELLCELLROWCREATECELLSHORT0208CELLSETCELLSTYLECELLSTYLE209CELLSETCELLTYPEHSSFCELLCELL_TYPE_STRING210CELLSETCELLVALUE“标题“211212总之,如本篇文章所演示的一样,JAVA程序员不必担心EXCEL工作表中的数据了,利用JAKARTAPOIAPI,213214我们就可以轻易的在程序中存取EXCEL文档。215216217218首先说说现在我所知道的JAVA编辑EXCEL文件的两大开源工具219220JAKARTAPOI和JAVAEXCELAPI(简称JXL),这两套工具我都试用了一这段时间,感觉各有优劣吧。POI在某些细节有些小BUG并且不支持写入图片,其他方面都挺不错的;221222JXL就惨了,除了支持写入图片外,我暂时看不到它比POI好的地方,我碰到的主要的问题就是对公式支持不是很好,很多带有公式的EXCEL文件用JXL打开后,公式就丢失了(比如NOW,TODAY),在网上看到其他大虾评论说JXL写入公式也有问题,另外,JXL操作EXCEL文件的效率比POI低一点。经过比较后,我选择了POI开发我的项目。223888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM224现在我要做的东西基本完成啦,我把这段时间使用POI的一些心得总结出来,希望能对和我遇到相同问题的朋友有所帮助,至于POI基本的使用方法,自己去看文档吧。2252261、设置分页符的BUG227228POI里的HSSFSHEET类提供了SETROWBREAK方法可以设置SHEET的分页符。229230BUG如果你要设置分页符的SHEET是本来就有的,并且你没有在里面插入过分页符,那么调用SETROWBREAK时POI会抛出空指针的异常。231232解决方法在EXCEL里给这个SHEET插入一个分页符,用POI打开后再把它删掉,然后你就可以随意插入分页符了。233234如果SHEET是由POI生成的则没有这个问题。我跟踪了SETROWBREAK的源代码,发现是SHEETJAVA下的PAGEBREAKRECORDROWBREAKS这个变量在搞鬼,如果SHEET里原来没有分页符,开发这个模块的那位兄台忘了为这个对象NEW实例,所以只能我们先手工给EXCEL插入一个分页符来触发POI为ROWBREAKS创建实例。2352362、如何拷贝行237238我在GMANEORG的POI用户论坛翻遍了每个相关的帖子,找遍了API,也没看到一个拷贝行的方法,没办法,只能自己写239240241/注THISFWORKBOOK是一个HSSHWORKBOOK,请自行在外部NEW242PUBLICVOIDCOPYROWS243STRINGPSOURCESHEETNAME,244STRINGPTARGETSHEETNAME,245INTPSTARTROW,INTPENDROW,246INTPPOSITION247248HSSFROWSOURCEROWNULL249HSSFROWTARGETROWNULL250HSSFCELLSOURCECELLNULL251HSSFCELLTARGETCELLNULL888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM252HSSFSHEETSOURCESHEETNULL253HSSFSHEETTARGETSHEETNULL254REGIONREGIONNULL255INTCTYPE256INTI257SHORTJ258INTTARGETROWFROM259INTTARGETROWTO260261IFPSTARTROW1|PENDROW1262263RETURN264265SOURCESHEETTHISFWORKBOOKGETSHEETPSOURCESHEETNAME266TARGETSHEETTHISFWORKBOOKGETSHEETPTARGETSHEETNAME267/拷贝合并的单元格268FORI0IPSTARTROW360RESULTAPPENDPPOIFORMULASUBSTRINGINDEXCSTREPLACESTRINGLENGTH361362ELSE363364RESULTAPPENDPPOIFORMULA365366367RETURNRESULTTOSTRING368369370至于为什么会出现ATTRSEMIVOLATILE,还需要大家的探索精神3713724、向EXCEL写入图片的问题。373374我上POI论坛查相关帖子,得到两种结论3753761、不支持写入图片;3773782、支持写入图片,通过ESCHERGRAPHICS2D这个CLASS实现。于是我就去查ESCHERGRAPHICS2D这个CLASS,发现这个CLASS提供了N个DRAWIMAGE方法,喜出望外的我开始写代码,结果调了一天,一直看不到效果,黔驴技穷的我在万般无奈下只好跟踪进DRAWIMAGE这个函数内部,经过N个函数调用后在最底层函数发现了最终答案379380381PUBLICBOOLEANDRAWIMAGEIMAGEIMAGE,INTDX1,INTDY1,INTDX2,INTDY2,INTSX1,INTSY1,382INTSX2,INTSY2,COLORBGCOLOR,IMAGEOBSERVERIMAGEOBSERVER888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM383384IFLOGGERCHECKPOILOGGERWARN385LOGGERLOGPOILOGGERWARN,“DRAWIMAGENOTSUPPORTED“386RETURNTRUE387388389所以我强烈建议大家,以后使用第三方开发包一定尽量下载它的源代码,这样你在碰到问题时,看看它的的内部是怎么实现的,很多时候就可以不必重蹈我的覆辙了。既然POI不能写入图片,那我们只能把目光投向JXL,我用JXL写入图片功能是实现了,付出的代价是NOW和TODAY这些函数丢失掉了,鱼与熊掌不能兼得吧。390391JSP操作392393394RESPONSESETHEADER“CONTENTDISPOSITION“,“INLINEFILENAMETEST1XLS“395/以上这行设定传送到前端浏览器时的档名为TEST1XLS396/就是靠这一行,让前端浏览器以为接收到一个EXCEL档397下面正常显示要转化的表398399400401介绍402JAKARTA_POI使用JAVA读写EXCEL972002文件,可以满足大部分的需要。403因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身404带的一个GUIDE有一些节减和修改,希望给使用这个项目的人一些入门帮助。405POI下面有几个自项目HSSF用来实现EXCEL的读写以下是HSSF的主页406HTTP/JAKARTAAPACHEORG/POI/HSSF/INDEXHTML407下面的介绍是基于以下地址的翻译408HTTP/JAKARTAAPACHEORG/POI/HSSF/QUICKGUIDEHTML409目前的版本为151应该是很长时间之内的一个稳定版,但HSSF提供的SAMPLE不是基于410151所写,所以使用的时候需要适当的注意411其实POI下面的几个子项目侧重不同读写WORD的HDF正在开发当中412XML下的FOPHTTP/XMLAPACHEORG/FOP/INDEXHTML413可以输出PDF文件,也是比较好的一个工具414目录888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM415创建一个WORKBOOK416创建一个SHEET417创建CELLS418创建日期CELLS419设定单元格格式420421说明422以下可能需要使用到如下的类423IMPORTORGAPACHEPOIHSSFUSERMODELHSSFCELL424IMPORTORGAPACHEPOIHSSFUSERMODELHSSFCELLSTYLE425IMPORTORGAPACHEPOIHSSFUSERMODELHSSFDATAFORMAT426IMPORTORGAPACHEPOIHSSFUSERMODELHSSFFONT427IMPORTORGAPACHEPOIHSSFUSERMODELHSSFROW428IMPORTORGAPACHEPOIHSSFUSERMODELHSSFSHEET429IMPORTORGAPACHEPOIHSSFUSERMODELHSSFWORKBOOK430IMPORTORGAPACHEPOIHSSFUTILHSSFCOLOR431432创建WORKBOOK433434HSSFWORKBOOKWBNEWHSSFWORKBOOK435/使用默认的构造方法创建WORKBOOK436FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“437/指定文件名438WBWRITEFILEOUT439/输出到文件440FILEOUTCLOSE441442创建一个SHEET443444HSSFWORKBOOKWBNEWHSSFWORKBOOK445HSSFSHEETSHEET1WBCREATESHEET“NEWSHEET“446/WORKBOOK创建SHEET447HSSFSHEETSHEET2WBCREATESHEET“SECONDSHEET“448/WORKBOOK创建另外的SHEET449FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM450WBWRITEFILEOUT451FILEOUTCLOSE452453创建CELLS454HSSFWORKBOOKWBNEWHSSFWORKBOOK455HSSFSHEETSHEETWBCREATESHEET“NEWSHEET“456/注意以下的代码很多方法的参数是SHORT而不是INT所以需要做一次类型转换457HSSFROWROWSHEETCREATEROWSHORT0458/SHEET创建一行459HSSFCELLCELLROWCREATECELLSHORT0460/行创建一个单元格461CELLSETCELLVALUE1462/设定单元格的值463/值的类型参数有多中DOUBLE,STRING,BOOLEAN,464ROWCREATECELLSHORT1SETCELLVALUE12465ROWCREATECELLSHORT2SETCELLVALUE“THISISASTRING“466ROWCREATECELLSHORT3SETCELLVALUETRUE467468/WRITETHEOUTPUTTOAFILE469FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“470WBWRITEFILEOUT471FILEOUTCLOSE472473创建日期CELLS474HSSFWORKBOOKWBNEWHSSFWORKBOOK475HSSFSHEETSHEETWBCREATESHEET“NEWSHEET“476477HSSFROWROWSHEETCREATEROWSHORT0478479HSSFCELLCELLROWCREATECELLSHORT0480/设定值为日期481CELLSETCELLVALUENEWDATE482483HSSFCELLSTYLECELLSTYLEWBCREATECELLSTYLE484/指定日期显示格式888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM485CELLSTYLESETDATAFORMATHSSFDATAFORMATGETFORMAT“M/D/YYHMM“486CELLROWCREATECELLSHORT1487CELLSETCELLVALUENEWDATE488/设定单元格日期显示格式489CELLSETCELLSTYLECELLSTYLE490491FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“WORKBOOKXLS“492WBWRITEFILEOUT493FILEOUTCLOSE494495496设定单元格格式497单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置,498单元格的背景色等,因为形式比较多,只举一些例子以下的例子在499POI15中可能会有所改变具体查看API500501/AQUABACKGROUND502HSSFCELLSTYLESTYLEWBCREATECELLSTYLE503/创建一个样式504STYLESETFILLBACKGROUNDCOLORHSSFCELLSTYLEAQUA505/设定此样式的的背景颜色填充506STYLESETFILLPATTERNHSSFCELLSTYLEBIG_SPOTS507508/样式的填充类型。509/有多种式样如510/HSSFCELLSTYLEBIG_SPOTS511/HSSFCELLSTYLEFINE_DOTS512/HSSFCELLSTYLESPARSE_DOTS等513STYLESETALIGNMENTHSSFCELLSTYLEALIGN_CENTER514/居中对齐515STYLESETFILLBACKGROUNDCOLORHSSFCOLORGREENINDEX516/设定单元个背景颜色517STYLESETFILLFOREGROUNDCOLORHSSFCOLORREDINDEX518/设置单元格显示颜色519HSSFCELLCELLROWCREATECELLSHORT1888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM520CELLSETCELLVALUE“X“521CELLSETCELLSTYLESTYLE522523524加上RESPONSESETCONTENTTYPE“APPLICATION/MSEXCEL“525RESPONSESETHEADER“CONTENTDISPOSITION“,“ATTACHMENTFILENAMEBOOKXLS“526然后提交给它的时候会时候会提示下载,527下载的就是生成的EXCEL文件。528529530531532有趣的是,对一个HTML文件(数据在表格中),当把后缀改为XLS后,打开文件即是。533534535536加上RESPONSESETCONTENTTYPE“APPLICATION/MSEXCEL“537RESPONSESETHEADER“CONTENTDISPOSITION“,“ATTACHMENTFILENAMEBOOKXLS“538然后提交给它的时候会时候会提示下载,539下载的就是生成的EXCEL文件。540541BOOKXLS的存放路径应该是哪里542543544545546使用POI的HSSF生成一个EXCEL文件以后547有一个主类WORKBOOK相当于一个EXCEL文件的方法548WORKBOOKWRITEOUTPUTSTREAM可以写到RESPONSEGETOUTPUTSTREAM里面549如果事先设置RESPONSE的CONTENTTYPE为EXCEL和下载的附件名称就可下载EXCEL550HSSFWORKBOOKBOOK_PROXYEXPERTEXCEL_FORMBEAN,_LOGIN551552IFBOOKNULL553888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM554RESPONSESETCONTENTTYPE“APPLICATION/MSEXCEL“555RESPONSESETHEADER“CONTENTDISPOSITION“,556“ATTACHMENTFILENAME“NEWSTRING“导出EXCELXLS“GETBYTES,“ISO88591“557558559BOOKWRITERESPONSEGETOUTPUTSTREAM560561其中EXPERTEXCEL无非是从数据库或者其他地方获取数据创建EXCEL即可562563564565566RESPONSESETHEADER“CONTENTDISPOSITION“,“ATTACHMENTFILENAMEBOOKXLS“567原来加上ATTACHMENT浏览器就会提示保存或者打开,是我想要的。THANKSALL5685695705715721用POI生成EXCEL文件,和WORD文档都可以,是个不错的方法,参见POI网站,楼上的朋友描述的很清楚了,此方法适用于生573574成,读取,解析XLS文件5752另外一种更简单的方法只适用于显示用的EXCEL文件格式,生成常规的HTML文件格式,后缀命名方式为XLS即可5763ESPREADSHEET适用于网上即时的EXCEL文件交互操作,生成,解析,保存修改,但需要购买577578579580生成一个RTF文件,然后扩展名写“DOC“,OK581582583584用这个组件向EXCEL写数据时,总是出现中文乱码情况,请问怎样解决585888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM586源代码587588HSSFWORKBOOKWBNEWHSSFWORKBOOK589HSSFSHEETSHEETWBCREATESHEET“NEWSHEET“590HSSFHEADERHEADERSHEETGETHEADER591HEADERSETCENTER“CENTERHEADER“592HSSFROWROWSHEETCREATEROWSHORT0593HSSFCELLCELLROWCREATECELLSHORT0594CELLSETCELLVALUE1595ROWCREATECELLSHORT1SETCELLVALUE12123654596ROWCREATECELLSHORT2SETCELLVALUE“THISISASTRING“597ROWCREATECELLSHORT3SETCELLVALUETRUE598ROWSHEETCREATEROWSHORT1599CELLROWCREATECELLSHORT0600CELLSETCELLVALUENEWDATE601ROWCREATECELLSHORT1SETCELLVALUESTR602ROWCREATECELLSHORT2SETCELLVALUE“THIS我是一个好人STRING“603FILEOUTPUTSTREAMFILEOUTNEWFILEOUTPUTSTREAM“D/FILENAMEXLS“604WBWRITEFILEOUT605FILEOUTCLOSE606607当我打开这个“D/FILENAMEXLS“文件时,其中写入的中文全都是乱码608如何解决609610611612源代码613HSSFWORKBOOKWBNEWHSSFWORKBOOK614HSSFSHEETSHEETWBCREATESHEET“NEWSHEET“615HSSFHEADERHEADERSHEETGETHEADER616HEADERSETCENTER“CENTERHEADER“617HSSFROWROWSHEETCREATEROWSHORT0618HSSFCELLCELLROWCREATECELLSHORT0619CELLSETCELLVALUE1620ROWCREATECELLSHORT1SETCELLVALUE12123654888期货入门网整理HTTP/WWWQIHUOKAIHUWCOM621ROWCREATECELLSHORT2SETCELLVALUE“THISISASTRING“622ROWCREATECELLS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论