//上传位置(与操作excel无关,可不看)                                                                                                                              

 public String getUploadPath() {
         File theWebFolder = XMPPServer.getInstance().getAdminFolder();
         String path = theWebFolder.getAbsolutePath() + File.separator
                 + "ucstar_plugins/ucyingjiyanlian/upload/";

         return path;
     }

     public String getUploadMediaPath() {
         File theWebFolder = XMPPServer.getInstance().getAdminFolder();
         String path = theWebFolder.getAbsolutePath() + File.separator
                 + "ucstar_plugins/ucyingjiyanlian/upload/media/";

         return path;
     }

// excel2003跟2007操作差不多、但是也有区别可以通过判断后缀名区别然后分别调用方法处理

//2003处理

public boolean exportExcelData(String _fileName, String _incidentUri) {
        boolean flag = false;
        if (JiveGlobals.isEmpty(_fileName) || JiveGlobals.isEmpty(_incidentUri)) {
            return flag;
        }
        try {
            String savePath = YingjiyanlianBaseManager.getInstance()
                    .getUploadPath();
            File saveFile = new File(savePath, _fileName);
            if (saveFile.exists()) {

                InputStream in = new BufferedInputStream(new FileInputStream(
                        saveFile));
                List<UcstarYingjiSend> fileto = new ArrayList<UcstarYingjiSend>();
                POIFSFileSystem fs = new POIFSFileSystem(in);
                HSSFWorkbook wb = new HSSFWorkbook(fs);
                HSSFCell cell = null;
                // sheet循环
                for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
                    // 第一张表的值
                    HSSFSheet st = wb.getSheetAt(sheetIndex);
                    // 获取第二行以下的信息
                    for (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
                        HSSFRow row = st.getRow(rowIndex);
                        if (row == null) {
                            continue;
                        }
                        UcstarYingjiSend poom = new UcstarYingjiSend();
                        poom.setIncidentUri(_incidentUri);
                        for (short columnIndex = 0; columnIndex <= row
                                .getLastCellNum(); columnIndex++) {
                            String value = "";
                            cell = row.getCell(columnIndex);

                            if (cell != null) {
                                // 注意:一定要设成这个,否则可能会出现乱码
                                cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                                switch (cell.getCellType()) {
                                case HSSFCell.CELL_TYPE_STRING:
                                    value = cell.getStringCellValue();
                                    break;
                                // 公式类型转换
                                case HSSFCell.CELL_TYPE_FORMULA:
                                    value = new DecimalFormat("0").format(cell
                                            .getNumericCellValue());

                                    break;
                                case HSSFCell.CELL_TYPE_NUMERIC:

                                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
                                        value = new java.text.SimpleDateFormat(
                                                "HH:mm").format(cell
                                                .getDateCellValue());
                                    } else {
                                        value = new DecimalFormat("0")
                                                .format(cell
                                                        .getNumericCellValue());
                                    }
                                    break;

                                }
                            }

                            if (rowIndex != 0 && rowIndex != 1) {
                                if (columnIndex == 0) {
                                    if (JiveGlobals.isEmpty(value)
                                            || !value.matches("[0-9]+")) {
                                        continue;
                                    }
                                    poom.setTaskId(value);
                                }
                                if (columnIndex == 1) {
                                    if (JiveGlobals.isEmpty(value)) {
                                        continue;
                                    }
                                    // poom.setCreatetime(value);
                                    poom.setCreatetime("00:00");
                                }
                                if (columnIndex == 2) {
                                    if ("否".equals(value)) {
                                        poom.setSameTime(0);
                                    } else if ("是".equals(value)) {
                                        poom.setSameTime(1);
                                    }
                                }
                                if (columnIndex == 3) {
                                    poom.setScriptstr(value);
                                }
                                if (columnIndex == 4) {
                                    poom.setCreator(value);
                                }
                                if (columnIndex == 5) {
                                    poom.setReceivers(value);
                                }
                                if (columnIndex == 6) {
                                    poom.setDetailTime(value);
                                }
                                if (columnIndex == 7) {
                                    poom.setDetail(value);
                                }
                                if (columnIndex == 8) {
                                    poom.setTitle(value);
                                }
                                if (columnIndex == 9) {
                                    poom.setMemo(value);
                                }
                            }
                        }
                        // 需要判断字段的值是否都为空,等 其他验证条件
                        if (!JiveGlobals.isEmpty(poom.getTaskId())
                                && !JiveGlobals.isEmpty(poom.getReceivers())
                                && !JiveGlobals.isEmpty(poom.getCreatetime())) {
                            fileto.add(poom);
                        } else {
                            Log.console(">>演练脚本导入数据有误,行:" + rowIndex);
                        }
                    }
                }
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException ioe) {
                    }
                }
                if (fileto.size() > 0
                        && UcstarYingjiSendServiceUtil.getFactory()
                                .getUcstarYingjiSendService().saveScriptDatas(
                                        fileto, _incidentUri)) {
                    flag = true;
                } else {
                    Log.error(">>202读取演练脚本数据为空");
                }
            } else { //文件不存在提示用户
                Log.error(">>203演练脚本不存在");
            }
        } catch (Exception e) {
            Log.error(">>应急演练Excel文件数据异常:" + e);
        }
        return flag;
    }
}

//2007处理

// 2007版本
    public boolean exportExcelDate2007(String _fileName, String _incidentUri) {
        boolean flag = false;
        if (JiveGlobals.isEmpty(_fileName) || JiveGlobals.isEmpty(_incidentUri)) {
            return flag;
        }
        try {
            String savePath = YingjiyanlianBaseManager.getInstance()
                    .getUploadPath();
            // String _fileNamm = _fileName +"x";
            File saveFile = new File(savePath, _fileName);
            if (saveFile.exists()) {
                String sb250 = saveFile.toString();
                // OPCPackage s1 = OPCPackage.open(in)
                // InputStream in = new BufferedInputStream(new
                // FileInputStream(saveFile));
                List<UcstarYingjiSend> fileto = new ArrayList<UcstarYingjiSend>();
                // XSSFWorkbook wb = new XSSFWorkbook(s1);
                XSSFWorkbook wb = new XSSFWorkbook(sb250);
                // wb = new XSSFWorkbook();
                // sheet循环
                for (int numSheet = 0; numSheet < wb.getNumberOfSheets(); numSheet++) {
                    // 第一张表的值
                    XSSFSheet st = wb.getSheetAt(numSheet);
                    // 获取第二行以下的信息
                    for (int rowNum = 0; rowNum <= st.getLastRowNum(); rowNum++) {
                        XSSFRow row = st.getRow(rowNum);
                        if (row == null) {
                            continue;
                        }
                        UcstarYingjiSend poom = new UcstarYingjiSend();
                        poom.setIncidentUri(_incidentUri);
                        for (short cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) {
                            String value = "";
                            XSSFCell cell = row.getCell(cellNum);
                            if (cell != null) {
                                // 注意:一定要设成这个,否则可能会出现乱码
                                switch (cell.getCellType()) {
                                case Cell.CELL_TYPE_STRING:
                                    value = cell.getStringCellValue();
                                    break;
                                // 公式类型转换
                                case Cell.CELL_TYPE_FORMULA:
                                    value = new DecimalFormat("0").format(cell
                                            .getNumericCellValue());

                                    break;
                                case Cell.CELL_TYPE_NUMERIC:
                                    /*
                                     * if (DateUtil.isD(cell)){ value = new
                                     * java.text.SimpleDateFormat("HH:mm").format(cell.getDateCellValue()); }
                                     * else { value = new
                                     * DecimalFormat("0").format(cell.getNumericCellValue()); }
                                     */
                                    // String ss =
                                    // cell.getCellStyle().getDataFormatString();
                                    value = new java.text.SimpleDateFormat(
                                            "HH:mm").format(cell
                                            .getDateCellValue());
                                    break;
                                }
                            }
                            if (rowNum != 0 && rowNum != 1) {
                                if (cellNum == 0) {
                                    if (JiveGlobals.isEmpty(value)
                                            || !value.matches("[0-9]+")) {
                                        continue;
                                    }
                                    poom.setTaskId(value);
                                }
                                if (cellNum == 1) {
                                    if (JiveGlobals.isEmpty(value)) {
                                        continue;
                                    }
                                    // poom.setCreatetime(value);
                                    poom.setCreatetime("00:00");
                                }
                                if (cellNum == 2) {
                                    if ("否".equals(value)) {
                                        poom.setSameTime(0);
                                    } else if ("是".equals(value)) {
                                        poom.setSameTime(1);
                                    }
                                }
                                if (cellNum == 3) {
                                    poom.setScriptstr(value);
                                }
                                if (cellNum == 4) {
                                    poom.setCreator(value);
                                }
                                if (cellNum == 5) {
                                    poom.setReceivers(value);
                                }
                                if (cellNum == 6) {
                                    poom.setDetailTime(value);
                                }
                                if (cellNum == 7) {
                                    poom.setDetail(value);
                                }
                                if (cellNum == 8) {
                                    poom.setTitle(value);
                                }
                                if (cellNum == 9) {
                                    poom.setMemo(value);
                                }
                            }
                        }
                        // 需要判断字段的值是否都为空,等 其他验证条件
                        if (!JiveGlobals.isEmpty(poom.getTaskId())
                                && !JiveGlobals.isEmpty(poom.getReceivers())
                                && !JiveGlobals.isEmpty(poom.getCreatetime())) {
                            fileto.add(poom);
                        } else {
                            Log.console(">>演练脚本导入数据有误,行:" + rowNum);
                        }
                    }
                }
                /*
                 * if(in != null){ try{ in.close(); }catch(IOException ioe){ } }
                 */
                if (fileto.size() > 0
                        && UcstarYingjiSendServiceUtil.getFactory().getUcstarYingjiSendService().saveScriptDatas(fileto, _incidentUri)) {
                    flag = true;
                } else {
                    Log.error(">>202读取演练脚本数据为空");
                }
            } else { // 文件不存在提示用户
                Log.error(">>203演练脚本不存在");
            }
        } catch (Exception e) {
            Log.error(">>应急演练Excel文件数据异常:" + e);
        }
        return flag;
    }

【java】: 操作excel2007/2003的更多相关文章

  1. 解析xlsx文件---Java读取Excel2007

    关于Java读取Excel2007的文章在Google.百度上搜索一下,没有太好的例子,实现的也不算太好.查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2 ...

  2. Java操作Excle(基于Poi)

    有一次有个同事问我会不会有java操作Excle,回答当然是不会了!感觉被嘲讽了,于是开始寻找度娘,找到个小例子,结果越写越有意思,最后就成就了这个工具类. import java.io.Buffer ...

  3. java操作excel 工具类

    java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...

  4. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  5. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  6. Java操作Oracle

    public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...

  7. JAVA操作ORACLE数据库的存储过程

    一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...

  8. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

  9. Java操作Session与Cookie

    1,Java操作Session Java操作Session非常简单,步骤如下 1.1,在servlet中通过request获取session HttpSession session = request ...

随机推荐

  1. 分享一下自己正在使用的sublime text里的插件

    真的回头想想要不是当时一个学姐给我介绍了这个编辑器,我可能还是那种迫不得已了不得不编程了才会去敲代码的,可能还是一只不喜欢编程的程序员.可是自从用了这款编辑器,我的世界仿佛都被改变了.天呐,整天忍不住 ...

  2. MySQL-(Master-Slave)配置

    1.两台机器,安装好版本一致的MySQL 192.168.29.128 (master) MySQL-5.6.21 192.168.29.129 (slave) MySQL-5.6.21 2.配置ma ...

  3. 不同hadoop集群之间迁移hive数据

    #!/bin/bash #set -x DB=$1 #获取hive表定义 ret=$(hive -e 'use ${DB};show tables;'|grep -v _es|grep -v _hb| ...

  4. GTD一些问题

    一."大局"与事物的本质1,在处理每天.每小时的事务时,有很多干扰因素分散了我们的注意力,以致我们无法集中足够的精力关注更重要的问题.2,一种下意识的抵触情绪,在面对那些原本棘手的 ...

  5. listview java.lang.ArrayIndexOutOfBoundsException:

    检测下BaseAdapter  下的getViewTypeCount()方法返回的值与getItemViewType返回的个数是否是相等的!

  6. js添加广告模块,随页面移动而移动

    实现如下的效果,一般用于广告, 这是通过运动来实现的,大家可以先自己写写,再看看和小编我写的是不是同一个思想 <style> #div1{ width:100px; height:100p ...

  7. Aspose.Words 的使用 Aspose.Total_for_.NET

    最近在做有个业务需要Word做好模版,数据库取出业务数据在写入Word模版里面,然后生成PDF给客户端的业务人员 之前找了半天,没有找到用微软的Microsoft.Office.Interop.Wor ...

  8. C++ 约瑟夫环问题

    约瑟夫环比较经典了 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直 ...

  9. 安装和使用memcached

    引用:http://www.czhphp.com/archives/252 如何将 memcached 融入到您的环境中? 在开始安装和使用 using memcached 之前,我们需要了解如何将 ...

  10. WampServer服务中MySQL无法正常启动解决方案

    打开wampserver->mysql->my.ini,添加或修改innodb_force_recovery = 1 然后重启所有服务就大功告成了!