05_Excel操作_02_模拟Web环境的User列表导出

【思路解释】

在正式上到WebProject之前,准备模拟一下WebProject后台的导出流程。

主要都写在ExcelService层,在Excel的Service层,首先要获得UserList,即数据库查询的User用户列表,这个UserList从UserDao的getUserList()方法获得,这个getUserList()方法实际没有查询数据库,只是自己创造了一些数据。

ExcelService获得了UserList之后,然后将数据按照一定的格式创建Excel、在Excel中写入数据。

【工程截图】

【User.java】

package com.Higgin.Excel.domain;

public class User {
    private int id;
    private String name;
    private String sex;
    private String phone;
    private String email;  ...省去get和set方法......
}

【UserDao.java】//模拟从数据库中获得数据

package com.Higgin.Excel.dao;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.Higgin.Excel.domain.User;

public class UserDao {
    /**
     * 模拟从数据库获取的User列表
     * @return
     */
    public List<User> getUserList(){
        List<User> userList=new ArrayList<User>();
        for(int i=1;i<=99;i++){
            User user=new User();
            user.setId(i);
            user.setName("Higgin"+i);
            user.setSex(i%3==0?"男":"女");
            user.setPhone("000000000"+(i*i));
            user.setEmail("myemail"+i+"@qq.com");
            userList.add(user);
        }
        return userList;
    }

}

【ExcelService.java】

package com.Higgin.Excel.service;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.junit.Test;
import com.Higgin.Excel.dao.UserDao;
import com.Higgin.Excel.domain.User;

public class ExcelService {
    private UserDao userDao=new UserDao();

    //模拟从数据库中查询获得对应的User列表
    private List<User> userList=userDao.getUserList();

    @Test
    public void outputExcel() throws IOException{
        //1.创建工作簿
        HSSFWorkbook workbook=new HSSFWorkbook();
            //1.1创建 合并单元格对象
        CellRangeAddress cellRangeAddress=new CellRangeAddress(0,0,0,4);
            //1.2创建 头标题,并设置其字体
        HSSFCellStyle style1=createCellStyle(workbook,(short)16);  //自己写的 设置单元格样式的方法 见最后
            //1.3创建 标题样式
        HSSFCellStyle style2=createCellStyle(workbook,(short)13);

        //2.创建工作表
        HSSFSheet sheet =workbook.createSheet("用户列表");
            //2.1 加载合并单元格对象
        sheet.addMergedRegion(cellRangeAddress);

        //3.创建行
            //3.1创建头标题行,并写入头标题
        HSSFRow row1=sheet.createRow(0);
        HSSFCell cell1=row1.createCell(0);
        cell1.setCellStyle(style1);
        cell1.setCellValue("用户列表");

            //3.2 创建列标题,并写入列标题
        HSSFRow row2=sheet.createRow(1);
        String[] titles={"id","姓名","性别","电话","邮箱"};
        for(int i=0;i<titles.length;i++){
            HSSFCell cell2=row2.createCell(i);
            cell2.setCellStyle(style2);
            cell2.setCellValue(titles[i]);
        }

        //4.创建单元格,写入用户数据到excel
        if(userList!=null&&userList.size()>0){
            for(int j=0;j<userList.size();j++){
                HSSFRow row=sheet.createRow(j+2);  //因为前两行分别是头标题和列标题,故要从第3行开始
                row.createCell(0).setCellValue(String.valueOf(userList.get(j).getId()));
                row.createCell(1).setCellValue(userList.get(j).getName());
                row.createCell(2).setCellValue(userList.get(j).getSex());
                row.createCell(3).setCellValue(userList.get(j).getPhone());
                row.createCell(4).setCellValue(userList.get(j).getEmail());
            }
        }

        //5.输出
        String fileName="D:\\用户列表.xls";
        FileOutputStream fileOutputStream=new FileOutputStream(fileName);
        workbook.write(fileOutputStream);
        workbook.close();
        fileOutputStream.close();
    }

    /**
     * 创建单元格 样式
     * @param workbook 工作簿
     * @param fontSize 字体大小
     * @return 单元格样式
     */
    private static HSSFCellStyle createCellStyle(HSSFWorkbook workbook,short fontSize){
        HSSFCellStyle style=workbook.createCellStyle();  //创建单元格对象
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  //水平居中
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  //垂直居中
            //创建字体
        HSSFFont font=workbook.createFont();
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //加粗字体
        font.setFontHeightInPoints(fontSize);     //设置字体大小
            //在样式中加载字体
        style.setFont(font);
        return style;
    }
}

【运行结果】

时间: 2024-10-10 06:11:43

05_Excel操作_02_模拟Web环境的User列表导出的相关文章

05_Excel操作_03_模拟Web环境的Excel导入

[思路简述] 本文继续上一篇文章,上一篇中生成了“D://用户列表.xls”的excel文件,我们接下来将这个excel导入,然后显示在控制台上. 工程什么的都同上一篇文章,只是在ExcelService.java中添加了一个inputExcel()的方法,如下: [ExcelService.java] @Test public void inputExcel(){ File userExcel=new File("D:\\用户列表.xls"); try { FileInputStre

利用 Apache Synapse 模拟 Web 服务

Apache Synapse 是一个简单.轻量级的高性能企业服务总线 (ESB),它是在 Apache Software Foundation 的 Apache License Version 2.0 下发布的.使用 Apache Synapse,您可以通过 HTTP.HTTPS.Java™ Message Service (JMS).简单邮件传输协议 (SMTP).邮局协议版本 3 (POP3).FTP.文件系统和许多其他传输介质筛选.转换.路由.操作和监视经过大型企业系统的 SOAP.二进制

腾讯云搭建web环境基础指导

搭建web环境算是程序员的基础课了,但实际情况是一个刚出道的程序员都不会有自己的服务器,顶多花几十块钱买个域名,申请个免费虚拟主机,随便用ftp传个源码可以装逼无数了.真要花上几百大泮的月租只为小试身手肯定是划不来的,真要到了提枪上阵的时候绝对是两眼懵逼.有不少同学在自己电脑上装了虚拟环境,模拟服务器操作.当初我也是这么干的,确实能提高一些操作经验.但是,我不得不泼一些冷水,虚拟环境与真实环境还是有很多区别的,尤其是window的server环境,它不像linux,敲啥就出来啥.window s

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

CentOS6.5中部署java web环境

原来在linux中部署java web环境,没有做好总结,这次在部署的过程中,将部署的过程做了记录,希望对大家有帮助.主要内容包括CentOS安装以后的网络设置,系统自带jdk的卸载,新版本jdk的安装,tomcat的安装部署. 一 CentOS的网络设置 利用桥接模式,让CentOS连接到网络. Vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改onboot=yes 保存退出 Ifconfig命令查看网络情况 可以看到ip地址 这时就能够ping通外

Windws Server 2008 R2 WEB环境配置之IIS7/IIS7.5+FastCGI+PHP 5.6.4+MYSQL+phpMyAdmin

本篇为WEB环境配置的汇总篇,其中PHP以FASTCGI方式来运行,这种方式性能更高.经过配置后,我们的服务器将同时可以运行PHP和.NET的程序,属称全能服务器.所有配置可以根据自身实际需要进行增减. 准备 先准备以下软件版本:    (程序包连接已下架,自行到官网下载) PHP,MYSQL,phpMyAdmin 1.PHP在windows 上二种运行方式: ISAPI和FastCGI Thread Safe 和Non Thread Safe FastCGI执行方式是以单一线程来执行操作,所以

第四篇(1):企业常用Linux web环境安装配置(apache、php、mysql)

上篇我们讲了基本的软件包管理和文件操作什么的,现在也要动手安装点有用的东西了吧! 本篇我会写出一个用yum安装apache.php.mysql的方法,最后再运行phpMyAdmin来管理数据库. 1.如何在Linux主机上安装apache 由于之前我们安装了完成的centos系统,所以可能系统有可能已经安装好了apache,所以我们先检查下是不是真的安装过了 先敲命令吧,yum list installed httpd* ,如果看到httpd已经安装,那么就yum -y remove httpd

全网服务器数据备份方案(模拟生产环境)+邮件告知

使用rsync实现全网数据备份(模拟生产环境)+邮件告知 项目要求来源于网络:http://oldboy.blog.51cto.com/2561410/1856048 假定3台服务器主机名分别为web01.backup.nfs01,主机信息如下表: 服务器说明 内网IP 主机名 nginx web服务器 192.168.1.222 WEB-01 NFS存储服务器 192.168.1.233 NFS-01 rsync备份服务器 192.168.1.244 BACKUP 要求:每天晚上00点整在We

ubuntu14.04安装及web环境的搭建

在进行接下来的工作之前首先得准备一个Ubuntu的启动U盘以及腾出一个至少50G的系统盘(在网上看到有人用20G的,不知道效果怎么样).关于Ubuntu启动U盘大家可以参考这个帖子 http://tieba.baidu.com/p/2931186318. 需要准备的东西ok之后,就可以开始装机了,首先设置电脑的第一启动项为你的U盘,进入到Ubuntu系统之后,按照提示一步一步next(关于连不联网的问题,我觉得最好还是不要联网,因为联网后会给你下一些其他的东西,导致装系统的速度变慢,具体什么东西