【java】: 操作excel2007/2003
//上传位置(与操作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的更多相关文章
- 解析xlsx文件---Java读取Excel2007
关于Java读取Excel2007的文章在Google.百度上搜索一下,没有太好的例子,实现的也不算太好.查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2 ...
- Java操作Excle(基于Poi)
有一次有个同事问我会不会有java操作Excle,回答当然是不会了!感觉被嘲讽了,于是开始寻找度娘,找到个小例子,结果越写越有意思,最后就成就了这个工具类. import java.io.Buffer ...
- java操作excel 工具类
java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
- JAVA操作ORACLE数据库的存储过程
一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...
- JAVA操作MongoDB数据库
1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...
- Java操作Session与Cookie
1,Java操作Session Java操作Session非常简单,步骤如下 1.1,在servlet中通过request获取session HttpSession session = request ...
随机推荐
- Celery 和 Redis 入门
Celery 是一个广泛应用于网络应用程序的任务处理系统. 它可以在以下情况下使用: 在请求响应周期中做网络调用.服务器应当立即响应任何网络请求.如果在请求响应周期内需要进行网络调用,则应在周期外完成 ...
- Laravel 校验规则之字段值唯一性校验
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] laravel validator unique 'name' => 'required|unique:test,disp ...
- Node以数据块的形式读取文件
在Node中,http响应头信息中Transfer-Encoding默认是chunked. Transfer-Encoding:chunked Node天生的异步机制,让响应可以逐步产生. 这种发送数 ...
- Django views 中的 shortcut function
shortcut function都在django.shortcuts这个包中,主要包含有:render(), render_to_response(), redirect(), get_object ...
- php源码之计算两个文件的相对路径
<?php //计算出两个文件的相对路径即path2相对于$path1的相对路径 // http://www.manongjc.com/article/1342.html function ge ...
- [转]遍历windows服务
原文:http://www.codeproject.com/Articles/1573/About-Windows-Services #include <windows.h> #inclu ...
- UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
转自:http://blog.sina.com.cn/s/blog_631a4cc40100wrvz.html UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: ...
- PIC32MZ tutorial -- Timer Interrupt
An interrupt is an internal or external event that requires quick attention from the controller. The ...
- JAVA编程规则【转自java编程思想】
本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在 ...
- 在MySQL中阻止UPDATE语句没有添加WHERE条件的发生
如果在生产环境中使用UPDATE语句更新表数据,此时如果忘记携带本应该添加的WHERE条件,那么..Oh,no…后果可能不堪设想.那么有没有什么办法可以阻止这样的事情发生,又不使用任何的审核工具呢.. ...