简单地从数据库查询数据使用poi插入创建Excel

本次使用到的jar包

  

代码

public class CreateExcel01 {

    // 数据库查询
    public static List<Account> query() {
        String sql = "select * from tb_account";
        List<Account> list = BaseDao.findRows(sql, null, Account.class);
        return list;
    }

    // 创建Excel
    public static void createExcel(){
        try {
            // 获取桌面路径
            FileSystemView fsv = FileSystemView.getFileSystemView();
            String desktop = fsv.getHomeDirectory().getPath();
            String filePath = desktop + "/account.xls";

            File file = new File(filePath);
            OutputStream outputStream = new FileOutputStream(file);
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 创建一个工作表
            HSSFSheet sheet = workbook.createSheet("Sheet1");
            // 创建首行/头(第0行开始)
            HSSFRow head = sheet.createRow(0);
            String[] header = new String[]{"账户id","账户名称","账户类型","账户金额","账户备注","创建时间","用户id","更新时间"};
            for (int i=0;i<header.length;i++){
                // 设置首行信息
                head.createCell(i).setCellValue(header[i]);
            }
            head.setHeightInPoints(20); // 设置行的高度

            // 从数据查询返回的集合
            List<Account> accounts=query();

            // 日期格式化
            HSSFCellStyle cellStyle2 = workbook.createCellStyle();
            HSSFCreationHelper creationHelper = workbook.getCreationHelper();
            // 设置日期格式
            cellStyle2.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
            sheet.setColumnWidth(3, 15 * 256);
            sheet.setColumnWidth(5, 20 * 256);
            sheet.setColumnWidth(7, 20 * 256);// 设置列的宽度

            // 保留两位小数
            HSSFCellStyle cellStyle3 = workbook.createCellStyle();
            cellStyle3.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));

            for(int i=0;i<accounts.size();i++) {
                // 创建行(从第一行开始)
                HSSFRow row1 = sheet.createRow(i + 1);
                // id
                row1.createCell(0).setCellValue(accounts.get(i).getId());
                // 账户名称
                row1.createCell(1).setCellValue(accounts.get(i).getAccountName());
                // 账户类型
                row1.createCell(2).setCellValue(accounts.get(i).getAccountType());

                // 账户金额(保留两位小数)
                HSSFCell money = row1.createCell(3);
                money.setCellStyle(cellStyle3);
                money.setCellValue(accounts.get(i).getMoney());

                // 账户备注
                row1.createCell(4).setCellValue(accounts.get(i).getRemark());

                // 创建时间(格式化时间)
                HSSFCell date1 = row1.createCell(5);
                date1.setCellStyle(cellStyle2);
                date1.setCellValue(accounts.get(i).getCreateTime());

                // 用户id
                row1.createCell(6).setCellValue(accounts.get(i).getUid());

                // 更新时间
                HSSFCell date2 = row1.createCell(7);
                date2.setCellStyle(cellStyle2);
                date2.setCellValue(accounts.get(i).getUpdateTime());
            }
            workbook.setActiveSheet(0);
            workbook.write(outputStream);
            outputStream.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
}

原文地址:https://www.cnblogs.com/dhome/p/9737342.html

时间: 2024-11-10 14:41:46

简单地从数据库查询数据使用poi插入创建Excel的相关文章

用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量.<s:iterator>标签有一个value属性,用来存放在Action类的方法中存数据的list集合,还有一个id,好像是说指定集合的索引的意思,就是给list集合遍历出来的每个对象加上一个数字标签,反正我是这么理解的,没用过.还有一个很重要,就是var变量,我在s:iterator按ctr

C#连接Oracle数据库查询数据

C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; using System.Collections.Generic; using System.ComponentModel using System.Data.OracleClient;;//这行和下一行都要先在引用中填加system.data.oracleclient using System.Da

[转]C#反射,根据反射将数据库查询数据和实体类绑定,并未实体类赋值

本文来自:http://www.cnblogs.com/mrchenzh/archive/2010/05/31/1747937.html /***************************************** * 说明:利用反射将数据库查询的内容自动绑定 *       到实体类 * * 时间:1:49 2009-9-19 * * 程序员:王文壮 * ***************************************/ /****************数据库脚本***

java实现从一个数据库查询数据经过处理导入另外一个数据库中

当数据库表中有clob字段或要对表中数据做较复杂处理时就不太好用脚本从一个数据库导入数据到另外一个数据库中了,这时就要通过代码实现了,下面以orale数据库为例代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Timestamp; import java.text

SpringMVC——项目启动时从数据库查询数据

SpringMVC项目中遇到这样的问题: 1.很多数据字典需要从数据库中查询: 2.懒得修改SQL语句: 3.想在项目中声明静态变量存储数据字典,但是希望这个字典可以在项目启动时进行加载. 当遇到这样的问题时,可以通过实现org.springframework.beans.factory.InitializingBean接口进行实现这一功能. 只需要实现afterPropertiesSet()方法就将在项目扫描完注解时调用这一方法,在这个方法内调用数据库查询的方法,查出所有数据字典,并保存在静态

ESQL查询之简单的Oracle数据库查询测试

操作Oracle数据库跟前边例子中操作其他数据库一样,同样是非常轻松的,略有不同的是SQL语法上的微小区别 查询 <ESql module=test id=datas><![CDATA[ Select STTP,STNM,STCD,PHCD from ST_STBPRP_B where rownum<=30 ]]></ESql> 定制显示字段名 <tr> <for end=0 [email protected]{datas:getWidth}&g

sqlserver数据库查询数据

数据查询-列别名 //使用AS来命名列 SELECT SCode AS 学生编号,SName AS 学生姓名, SAddress AS 学生地址 FROM Students WHERE SAddress <> '河南新乡'//使用=来命名列 SELECT 姓名 = FirstName+'.'+LastName FROM Employees注意: 1. + 连接的数据类型必须兼容 2. 如果 + 连接字符型数据,结果为字符串数据的连接 3. 如果 + 连接数值型数据,结果为数值的和 数据查询-限

脚本——loadrunner连接oracle数据库查询数据

import java.io.*; import java.sql.*; import lrapi.lr; public class Actions { int sum=0; public int init() throws Throwable { return 0; }//end of init public int action() throws Throwable { try{ //定义了数据库连接串 /*DSN=ORACL_LR;UID=FASP_150001;PWD=1;DBQ=192

从数据库查询数据然后拼接成xml文件

<%@page import="java.util.HashSet"%> <%@page import="java.util.Set"%> <%@page import="java.util.List"%> <%@page import="java.net.URLDecoder"%> <%@page import="org.apache.el.lang.Expre