每日记载内容总结39

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();
        }
    }
时间: 2024-10-11 12:37:35

每日记载内容总结39的相关文章

每日记载内容总结34

1.数据库以及服务器方面 (1)查看电脑中 sql server 版本  1> select @@version2> go (2)1.数据库日期格式化 select id,nickName,addTime,date_format(addTime, '%H:%i:%s'),date_format(addTime, '%Y-%m-%d') from faqhelphead where status=1 and state=0 and nickName like '%飞回%' order by da

每日记载内容总结33

完整的客服服务功能需要注意的事项: 1.用户接入客服的提示 A.接入客服前,提示接入客服的时间段等条件,满足的话,则接入客服.不满足,跳转页面,让用户自主填写. B.接入客服中,提示正在接入客服 C.接入客服中,客服繁忙提示 D.接入客服不成功,提示,或者跳转页面 E.接入客服成功,客服对象的介绍或者提示 2.分配客服任务 A.先判断客服是否在线,然后分配任务 B.按照客服服务内容和用户问题内容对应分配 C.记录客服的正在服务任务和服务完成任务数,以及正在服务内容 3.客服服务 A.客服服务页面

每日记载内容总结32

1.java创建数组的3个方法: int vec[] = new int[]{1, 5, 3}; // 第一种方法 int vec[] = { 37 , 47 , 23 } ; // 第二种方法 int vec[] = new int [3]; 2.double保留2位小数(四舍五入) double avgTimeAll=23.5620d; BigDecimal bg = new BigDecimal(avgTimeAll); Double avgTime = bg.setScale(2, Bi

每日记载内容总结42

1. log日志,相关知识 log4j中输出信息的级别分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,明白这一点很重要.这里Log4j有一个规则:假设设置了级别为P,如果发生了一个级别Q比P高,则可以启动,否则屏蔽掉. catalina.out与log文件的区别:catalina.out里面存放的是tomcat启动关闭的输出和在控制台的输出.log文件保存的log日志

每日记载内容总结37

html页面内容: 1.获取下拉框的内容 根据input类别获取下拉框 var k = $("input[type='checkbox']:checked").length; 根据input name 获取下拉框 var k = $("input[name='checkboxname']:checked").length; 数据库内容: 1.批量替换数据库某个字段的值 --将aaaa替换为cccc update 表名 set 字段名=replace(字段名,'aaa

每日记载内容总结35

1.js实现关闭浏览器当前窗口 function closeWindow(){ var userAgent = navigator.userAgent; if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Presto") != -1) { window.location.replace("about:blank"); } else { window.opener = null

每日记载内容总结40

1.ajax传值map时,在页面解析 Map<Integer, List<Object[]>> objs = new HashMap<Integer, List<Object[]>>(); objs.put(1, page.getRows()); objs.put(2, pageOrders); return renderMyPageData(success, msg, objs, page); if(result.status == "true&

每日记载内容总结38

从一个项目中学到的做项目知识: 1.不管需求多么简单,多么熟练,都要和项目负责人对需求.对完了就知道有什么了,不对完,猜测有什么,说不定会多出什么. 2.项目需要文件没有齐全的话,需要考虑下次相同文件到来时,已最快的方法进行操作. 3.加需求,要考虑原需求是否可以按时完成,完不成,就不加,或者对负责人进行提醒. 4.要从整个项目出发,设计实体类和数据库内容,是做功能,还是做管理模块,等等,考虑全了再设计,总比推到再来强多了. 5.测试,要深入全面测试,不要只测同样功能的一部分,要测全部. 从一个

每日记载内容总结41

1.dbcp连接数据库(附带基本数据库操作方法) package com.nplus.dbcp; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.St