- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用POI HSSF处理EXCEL表格 POI的主页:/poi POI HSSF的Quick Guide,教初学者如何快速上手使用POI HSSF: /poi/hssf/quick-guide.html 笔者据使用经验以为:POI HSSF是当今市面上最强大的处理EXCEL表格的java工具,比韩国人写的那个JExcelApi或其它几种工具都要好。而且它是Apache的开源项目。当然POI HSSF也有缺点:不能直接支持EXCEL图表,API文档粗糙简略,有些类和方法需要引用Apache项目中的其它一些包,包与包之间依赖关系比较复杂等等。 本文内容不在于提供一个POI HSSF 的完整使用指南(上面那个Apache主页上的Quick Guide已经非常详细),而是列出一些笔者在项目开发过程中找到的一些技巧、经验。 下图是定义的模板PoiTest.xls: 通过POI生成的最终结果: (单元格中的数据发生变化时,图表中的柱状、折线也会跟着变化) 处理图表 目前POI版本为2.5.1,org.apache.poi.hssf.usermodel包里有一个HSSFChart类,里面只有一个空方法createBarChart(),表明POI还不直接支持EXCEL图表。 替代方法还是有的:因为EXCEL图表的源数据引用自EXCEL单元格。我们可以先新建一个EXCEL工作薄,作为模板,在里面创建图表,指定它引用工作表中的一些特定单元格。然后我们用POI来读取这个工作薄,把数据写入到那些特定单元格。 首先要在模板里创建可以动态引用单元格的“名称”,利用“名称”来创建图表中的“系列”。 一、打开模板PoiTest.xls,点击[插入][名称][定义],创建四个“名称”sx,s1y,s2y,s3y: sx=OFFSET(Sheet1!$A$17,0,2,1,COUNTA(Sheet1!$17:$17)-4) s1y=OFFSET(Sheet1!$A$18,0,2,1,COUNTA(Sheet1!$18:$18)-4) s2y=OFFSET(Sheet1!$A$19,0,2,1,COUNTA(Sheet1!$19:$19)-3) s3y=OFFSET(Sheet1!$A$20,0,2,1,COUNTA(Sheet1!$20:$20)-3) 这里用到了两个EXCEL函数,OFFSET()和COUNTA()函数。 其中COUNTA()可以返回一行或一列的单元格总数: 比如COUNTA(Sheet1!$A:$A),计算工作表Sheet1的A列的单元格数目。 又比如COUNTA(Sheet1!$17:$17),计算的是Sheet1的第17行的单元格数目。 当我们没有在单元格里键入数据时,该单元格是不会被COUNTA()计算的。 OFFSET()函数用来引用一系列连续的单元格,它共有五个参数: 参数一,作为位置参照的单元格。 参数二,行的起始偏移量(以参数一为参照)。 参数三,列的起始偏移量(以参数一为参照)。 参数四,跨行数。 参数五,跨列数。 比如: OFFSET(Sheet1!$A:$1,1,2,3,4),表示引用范围为:C2:F4。 二、在模板中创建图表,在图表上点右键,选择[源数据][系列],如图建立三个系列: 点[添加]创建新的系列: [名称]表示系列名,可以直接输入字串,也可以引用EXCEL单元格。 在[值]中输入我们在上一步中创建的“名称”,格式为:模板名.xls!名称。 在[分类(X)轴标志(T)]中输入我们在上一步中创建的“名称”sx,格式为:模板名.xls!名称。它表示图表区域的X轴将要显示的内容。 三、用POI把数据写入到相应的单元格中,图表将会自动显示对应的信息。 注意: 上面这种方法适用数据集合行数固定而列数动态变化的情况。 对于行数也动态变化的情况,只能先在模板里预设尽可能多的“名称”和“系列”。 对于行数和列数都固定的情形,没必要这么复杂,只要在图表的[源数据]里设置[数据区域],使之引用EXCEL模板中的一定范围,如下图: ? 设置单元格样式 ? HSSFCellStyle类代表一种单元格样式。可以通过这个类来设置单元格的边框样式、背景颜色、字体、水平和垂直对齐方式等等。 HSSFCellStyle titleStyle = workbook.createCellStyle();??titleStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);??titleStyle.setBorderLeft((short)1);??titleStyle.setBorderRight((short)1);??titleStyle.setBorderTop(HSSFC
您可能关注的文档
最近下载
- 中国信通院2025人工智能高质量数据集建设指南74页.pdf VIP
- 2025年四川省高等职业教育单独考试招生(中职类)语文试卷(解析版).docx
- 2024年全球医疗行业展望.pdf VIP
- 2025年辐射安全与防护培训考试题库及答案.docx
- 卫生健康行业人工智能应用场景参考指引.pdf VIP
- 2025年苏教版科学六年级上册教学计划(含进度表).docx VIP
- 产品留样记录表.doc VIP
- 2025全国安全生产月宣讲教育之有限空间作业安全要点课件(含讲稿).pptx VIP
- 重庆推进全市乡村人才振兴若干措施.docx VIP
- 精选100道题《有理数加减混合运算》测考试试题.doc VIP
文档评论(0)