Apache POI

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF - 提供读写Microsoft Word DOC格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF - 提供读Microsoft Outlook格式档案的功能。
String filePath = "D://test.xls";
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("数据记录");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
HSSFRow row2 = sheet.createRow((int) 1);
//设置表头字体样式
HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short) 11);
font.setFontName("宋体");
font.setColor(HSSFColor.BLACK.index);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//设置内容字体样式
HSSFFont font2 = wb.createFont();
font2.setFontHeightInPoints((short) 11);
font2.setFontName("宋体");
font2.setColor(HSSFColor.BLACK.index);
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
// 第四步,创建单元格样式,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个水平居中格式
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//创建一个竖直居中格式
style.setFont(font);
HSSFCellStyle style2 = wb.createCellStyle();
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style2.setFont(font2);
HSSFCell cell = row.createCell(0);
HSSFCell cell2 = row2.createCell(0);cell.setCellValue("查询时间");
cell.setCellStyle(style);
cell2.setCellValue("");
cell2.setCellStyle(style);cell = row.createCell(1);
cell.setCellValue("自助查询阶段");
cell.setCellStyle(style);
cell2 = row2.createCell(1);
cell2.setCellValue("产品类型");
cell2.setCellStyle(style);cell = row.createCell(2);
cell.setCellValue("自助查询阶段");
cell.setCellStyle(style);
cell2 = row2.createCell(2);
cell2.setCellValue("产品型号");
cell2.setCellStyle(style);cell = row.createCell(3);
cell.setCellValue("最后阶段");
cell.setCellStyle(style);
cell2 = row2.createCell(3);
cell2.setCellValue("产品类型");
cell2.setCellStyle(style);for (int i = 1; i < 4; i++){row = sheet.createRow((int) i+1);row.createCell(0).setCellStyle(style2);row.createCell(0).setCellValue("测试");row.createCell(1).setCellValue("测试");row.createCell(2).setCellValue("测试");row.createCell(3).setCellValue("测试");}
// 第六步,如果表格有需要,可以将单元格合并 行开始位置 行结束位置 列开始位置 列结束位置sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 2));try{FileOutputStream fout = new FileOutputStream(filePath);wb.write(fout);fout.close();}catch (Exception e){e.printStackTrace();}

效果如下:

2.通过ResultSet获取数值时注意事项:

(1)获取数据库里面存储的时间的话,rs.getDate("addTime") 只能获取日期,rs.getTimestamp("addTime")可以获取日期以及时间

(2)数据库字段类型为int,如果数据库内该值是空的话,rs.getInt("faqisok")获取到的值为0,需要修改为rs.getObject("faqisok") == null ? null : rs.getInt("faqisok")

3.request.getServletContext() getRealPath("/") request.getContextPath()三者关系:
(1)request.getServletContext() 获取的是Servlet容器对象,相当于tomcat容器了。

(2)request.getServletContext().getRealPath("/") 获取实际路径,“/”指代项目根目录,所以代码返回的是项目在容器中的实际发布运行的根路径如:

I:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\UMPWeb_20131230\
(3)request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串,

因此,获取项目链接可以通过以下方式:

public String getHostUrl(HttpServletRequest request) {String hostName=request.getServerName();Integer hostPort=request.getServerPort();String path = request.getContextPath();if(hostPort==80) {return "http://"+hostName+path+"/";} else {return "http://"+hostName+":"+hostPort+path+"/";}}

4.在不存在的文件夹内创建文件:

两种方式:

方式1(错误,此方法创建的是text.txt文件夹,将来写入内容的时候会保存)

String filePath = "D://testfolder//test.txt";
if(!new File(filePath).exists()){new File(filePath).mkdirs();
}

方式2(正确,先创建父文件夹,然后再创建文件,最后写入内容)

    String filePath = "D://testfolder";if(!new File(filePath).exists()){new File(filePath).mkdirs();}String file = filePath+"//test.txt";if(!new File(file).exists()){try {new File(file).createNewFile();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}

转载于:https://www.cnblogs.com/cuiyf/p/4128398.html

每日记载内容总结39相关推荐

  1. 每日记载内容总结50

    Maven中的dependencyManagement 意义[原文链接] 在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器. pom.xm ...

  2. 每日记载内容总结32

    1.java创建数组的3个方法: int vec[] = new int[]{1, 5, 3}; // 第一种方法 int vec[] = { 37 , 47 , 23 } ; // 第二种方法 in ...

  3. 每日记载内容总结14

    1.一些jquery和js的知识: (1)toggle 是模拟连续点击事件,点一次执行体内第一个函数,点第二次执行体内第二个函数,依次进行,等到全部点完,又重复进行. 还有一个用法是作为函数用来切换元 ...

  4. 每日记载内容总结44

    HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放: LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代: Tree ...

  5. 每日记载内容总结22

    1.注意:s标签不能在外部js中使用,想要在外部js中用页面获取到的值的话,需要如下进行: (1)在jsp页面用js获取到需要的值 <script type="text/javascr ...

  6. 每日记载内容总结46

    nmap Nmap 又叫做Network Mapper(网络映射器)是一个开源并且为了Linux系统管理员或者网络管理员的万能的工具.Nmap用于浏览网络,执行安全扫描,网络审计以及在远程机器找到开放 ...

  7. 【每日一练】39—七夕节背景轮播图效果的实现

    作者 | 杨小爱 写在前面 今天是七夕节,在这里,我先祝大家七夕节快乐,有情人终成眷属.我们节也要过,学习也要继续,因此,今天我们来实现一个漂亮的七夕幻灯轮播图效果,这个效果我个人觉得非常实用,如果你 ...

  8. seo人员的每日工作内容应该都有什么?

    作为SEO我们就好很清楚自己每天的任务,并且持之以恒的做下去,要相信机会是留给有准备的人的,而成功却是留给坚持下去的人的. 1.查询网站收录 收录分两种,一种是网站内部的收录,一种是站点外的收录. 站 ...

  9. 每日一题(39)—— sizeof

    以下代码中的两个sizeof用法有问题吗? void UpperCase(char str[]) {for(size_t i = 0; i < sizeof(str)/sizeof(str[0] ...

最新文章

  1. 《DNS与BIND(第5版)》——7.6 保持一切平稳运行
  2. 忘记mysql数据库密码时进行修改方法
  3. Flashdevelop 在Project 上增加 ComboBox
  4. VError - Found 0 matching services的根源分析
  5. 医疗数据典型特征及架构发展方向研究
  6. Android在线更新安装包,Android在线更新下载方案
  7. USACO Section 4.2 Drainage Ditches(最大流)
  8. Arm开发板内核驱动模块--Helloworld及Makefile
  9. linux 服务器鼠标右键失灵_【华鹏客服维修部】系统重置后,键盘失灵怎么办?...
  10. 爬虫实践---电影排行榜和图片批量下载
  11. vs code 开发企业级python_入股不亏!VS Code中最好用的Python扩展插件
  12. 大数据开发,如何发掘数据的关系?
  13. java计算机毕业设计医疗器械销售电子商城源码+系统+mysql数据库+lw文档
  14. Python读取文件找出重复元素
  15. www 53ff com劫持IE,广告网页图标常驻桌面,删了又来
  16. 任意文件读取与下载漏洞
  17. 【数理逻辑三】命题逻辑及形式系统【上】
  18. 深度多模态子空间聚类网络+代码实现
  19. css防止高度塌陷,css之高度塌陷及其解决方法
  20. pdfjs 浏览器打印字体模糊问题

热门文章

  1. java 类对象_Java中的对象和类是什么?
  2. java fieldposition_Java FieldPosition toString()用法及代码示例
  3. php如何数字转字符串,php如何实现数字转字符串
  4. pat题解java,1039 到底买不买 (20分) Java题解 PAT (Basic Level) Practice (中文)- 巧妙开大数组减少代码量...
  5. 折线图 放大_第二个折线图(Line Plot)的示例代码
  6. 89c51,8255,6个led数码管显示时钟的汇编语言程序,汇编语言要求编写一个时钟程序 用八位数码管实现时分秒的计时功能...
  7. html点赞插件,chrome空间自动点赞插件。浏览器插件简单例子。
  8. mysql推荐内存_MySQL大内存配置方案 如my-medium.ini、my-huge.ini等
  9. python在统计中的应用_Python在简单数据统计中的应用--随笔记
  10. mysql按字段拆分表_MYSQL命令怎么实现将表中某个字段中多个记录拆分,急求答案!...