欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java如何導(dǎo)出excel文件

這篇文章主要介紹了Java如何導(dǎo)出excel文件,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),清江浦企業(yè)網(wǎng)站建設(shè),清江浦品牌網(wǎng)站建設(shè),網(wǎng)站定制,清江浦網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,清江浦網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

需求

將每個(gè)xmpp機(jī)房的在線/離線用戶信息導(dǎo)出到Excel表格中(定時(shí)任務(wù)+網(wǎng)頁按鈕),并在網(wǎng)頁上提供下載按鈕進(jìn)行下載。

效果預(yù)覽

Java如何導(dǎo)出excel文件

導(dǎo)出文件效果

Java如何導(dǎo)出excel文件

代碼總覽

/** "..."為公司業(yè)務(wù)代碼,大多為從緩存或者數(shù)據(jù)庫中獲取導(dǎo)出數(shù)據(jù),不影響導(dǎo)出功能。

  • 前端寫法為公司框架,理解大致意思就好。

*/
一、工具類:生成excel對(duì)象wb

package com.onewaveinc.utils;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.onewaveinc.mip.log.Logger;
import com.onewaveinc.user.entity.UserInfo;
/**
 * 生成Excel文件工具類
 * @author wxin
 *
 */
public class ExcelUtil {

    private static Logger logger = Logger.getInstance(ExcelUtil.class);
    /**
     * 導(dǎo)出Excel
     * @param sheetName sheet名稱
     * @param title 標(biāo)題
     * @param values 內(nèi)容
     * @param wb HSSFWorkbook對(duì)象
     * @return
     */
    public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,List<UserInfo> valueList, HSSFWorkbook wb){

        // 第一步,創(chuàng)建一個(gè)HSSFWorkbook,對(duì)應(yīng)一個(gè)Excel文件
        if(wb == null){
            wb = new HSSFWorkbook();
        }

        // 第二步,在workbook中添加一個(gè)sheet,對(duì)應(yīng)Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步,在sheet中添加表頭第0行,注意老版本poi對(duì)Excel的行數(shù)列數(shù)有限制
        HSSFRow row = sheet.createRow(0);

        // 第四步,創(chuàng)建單元格,并設(shè)置值表頭 設(shè)置表頭居中
        HSSFCellStyle style = wb.createCellStyle();
        // 創(chuàng)建一個(gè)居中格式
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); 

        //聲明列對(duì)象
        HSSFCell cell = null;

        //創(chuàng)建標(biāo)題
        for(int i=0;i<title.length;i++){
            cell = row.createCell((short) i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }

        //創(chuàng)建內(nèi)容
        if (null != valueList && valueList.size() > 0) {
            for(int i=0;i<valueList.size();i++){
                row = sheet.createRow(i + 1);
                UserInfo userInfo = valueList.get(i);
                String []userInfoArray = {userInfo.getLoginName(),userInfo.getStbMac(),userInfo.getLoginIp(),
                        userInfo.getServerDomain(), userInfo.getTerminalModel(),userInfo.getTerminalVersion(),
                        userInfo.getServerIp(),    userInfo.getUpdateTime(),userInfo.getLoginTime()};
                for(int j=0;j<userInfoArray.length;j++){
                    //將內(nèi)容按順序賦給對(duì)應(yīng)的列對(duì)象
                    row.createCell((short) j).setCellValue(userInfoArray[j]);
                }
            }
        } else {
            logger.error("用戶信息無數(shù)據(jù)");
        }
        return wb;
    }
}

二、生成excel文件方法

    public void run() throws InterruptedException, IOException {
         ExportExcel();
   }

    /**
     * 定時(shí)導(dǎo)出XMPP每個(gè)機(jī)房(一個(gè)集群)的在線用戶的信息
     * 導(dǎo)出信息:用戶賬號(hào),mac地址,登陸的IP,登陸域名,機(jī)頂盒的型號(hào),版本,和以及登陸所在節(jié)點(diǎn)的ip,
     * 顯示 登陸的時(shí)間,登陸的時(shí)長(現(xiàn)在的時(shí)間減去登陸的時(shí)間)。
     */
    public  String ExportExcel() {
        String result = "";
        try {
            ...
            result = ImportDataExcel(offlineUserInfoList, serverName, false);
            logger.info("**此次處理離線結(jié)果為:"+result);
            ...
            
        } catch (Exception e) {
            result = "failed";
            e.printStackTrace();
        }
        return result;
        
    }
    /**
     * 導(dǎo)出用戶信息數(shù)據(jù)到Excel表格
     * @param userInfoList
     * @return msg “failed” or “success”
     */
    public String ImportDataExcel(List<UserInfo> userInfoList, String serverName , boolean isOnline) {
        String msg = "";
        String fileName = "";
        String sheetName = "";
        String[] title = {"用戶賬號(hào)","mac地址","登陸IP","登陸域名","機(jī)頂盒型號(hào)", "機(jī)頂盒版本",
                "登錄所在節(jié)點(diǎn)的IP", "登陸時(shí)間", "登陸時(shí)長"};
        //設(shè)置日期格式
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
        // new Date()為獲取當(dāng)前系統(tǒng)時(shí)間,也可使用當(dāng)前時(shí)間戳
        String date = df.format(new Date());
        if (isOnline) {
            fileName = serverName+"-online-usersInfo-"+date+".xls";
            sheetName = serverName+"在線用戶信息表";
        } else {
            fileName = serverName+"-offline-usersInfo-"+date+".xls";
            sheetName = serverName+"離線用戶信息表";
        }
        HSSFWorkbook wb = new HSSFWorkbook();
        wb = ExcelUtil.getHSSFWorkbook(sheetName, title, userInfoList, null);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try{
            wb.write(os);
        }
        catch (IOException e){
            msg = "failed";
            e.printStackTrace();
        }
        byte[] content = os.toByteArray();
        //Excel文件生成后存儲(chǔ)的位置。
        File file = new File(path+"/"+fileName);
        OutputStream fos  = null;
        try{
            fos = new FileOutputStream(file);
            fos.write(content);
            os.close();
            fos.close();
            if ("".equals(msg)) {
                msg = "success";
            }
            logger.info("生成用戶信息Excel表格成功:"+ fileName);
        }
        catch (Exception e){
            msg = "failed";
            logger.error("生成用戶信息Excel表格失敗:"+ fileName);
            e.printStackTrace();
        }
        return msg;
    }

三、SpringMVC

@SuppressWarnings("deprecation")
@Resource("userLoginService")
@Bean("contbiz.imoss.userloginservice")
public class UserChannelLoginService {
...
    @Post
    @Path("exportExcel")
    public String ExportExcel() {
        String result = "";
        result = exportXMPPUserInfo.ExportExcel();
        return result;
    }
...
}

四、配置文件

#導(dǎo)出文件路徑:導(dǎo)出XMPP各個(gè)機(jī)房的在線用戶信息Excel表,
#<require>
/spring/config.properties|xmpp.export.excel.path=D:\Doc\test111

#定時(shí)任務(wù)時(shí)間:導(dǎo)出XMPP各個(gè)機(jī)房的在線用戶信息Excel表,
#<require>
/spring/config.properties|xmpp.export.excel.time=0 44,45,46,47 20 11 * ?
<!-- 指定執(zhí)行的目標(biāo)類、方法 -->
    <bean id="autoSmsB2cJobDetail"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
             <!-- 指定任務(wù)類 -->
             <property name="targetObject" ref="contbiz.imoss.exportXMPPUserInfo" />
            <!--  指定任務(wù)方法 -->
             <property name="targetMethod" value="run" />
             <property name="concurrent" value="false" />
     </bean>
    <!-- 設(shè)置執(zhí)行任務(wù)以及時(shí)間 -->
     <bean id="autoSmsB2cJobDetailCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
             <property name="jobDetail">
                    <ref bean="autoSmsB2cJobDetail" />
             </property>
             <property name="cronExpression">
                    <value>${xmpp.export.excel.time}</value>
             </property>
      </bean>
      <!-- 啟動(dòng)定時(shí)器 -->
      <bean id="ssschedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
             <property name="triggers">
                    <list>
                           <!-- <ref bean="autoSmsB2cJobDetailSimpleTrigger" /> -->
                           <ref bean="autoSmsB2cJobDetailCronTrigger" />
                    </list>
             </property>
       </bean>

五、前端

/**前端寫法為公司框架,理解大致意思就好。*/

...
<input id="exportExcel" type="submit" value="導(dǎo)出" />
...
<script>
    //導(dǎo)出excel
    W.$('exportExcel').on('click',function(e){    
        
        W.create('userLoginService/exportExcel').done(function(result){
            if (result == "success") {
                W.alert("導(dǎo)出所有在線/離線用戶成功");
            } else {
                W.alert("導(dǎo)出所有在線/離線用戶失敗");
            }
            
        });
    });
</script>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Java如何導(dǎo)出excel文件內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!

網(wǎng)頁名稱:Java如何導(dǎo)出excel文件
URL標(biāo)題:http://aaarwkj.com/article2/igicoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站、做網(wǎng)站、微信公眾號(hào)、標(biāo)簽優(yōu)化App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
欧美日韩免费r在线视频| 亚洲 精品一区二区| 国产精品久久久久精品爆| 中文在线在线天堂中文| 在线观看国产一区二区不卡| 国产97精品在线播放| 老熟女乱色一区二区三区| 色婷婷精品一区二区三区| 久久精品少妇人妻视频| 亚洲av十八禁在线播放| 日韩在线国产精品一区| 美女被强到爽高潮不断在线| 日韩人妻中文字幕专区| 亚洲欧美日韩在线第三页| 欧美国内日本一区二区| 下载一个日韩暴力黄色录像| 欧美日本一道本一区二区三区| 中文字幕变态另类一区二区| 深夜福利视频一区二区| 五月婷婷色综合激情五月| 内地精品露脸自拍视频| 无人视频在线观看高清91| 全国精品免费视频久久久| 亚洲欧美不卡一区二区| 日本在线看片一区二区| 九九九热在线免费视频| 午夜福利中文字幕在线亚洲| 禁区正片免费看完整国产 | 清纯少妇激情四射网站| 日本中文字幕在线播放一区| 欧美日韩午夜福利视频| 亚洲日本va午夜中文字幕一区| 无套内谢少妇高朝毛片| 日本免费高清一区二区| 91麻豆视频福利视频| 粉嫩一区二区三区精品视频| 色中文字幕人妻诱惑制服| 日韩精品一区二区一牛| 99久久成人精品国产片| 中文字幕乱码av一区二区| 在线看片国产精品自拍|