【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 ...
随机推荐
- CORBA GIOP消息格式学习
想要深入理解ORB的工作过程与原理,学习与了解GIOP消息格式必不可少.我们知道GIOP是独立于具体通信的更高级别的抽象,因此这里针对GIOP在TCP/IP上的实现IIOP协议进行学习与分析(IIOP ...
- CSS3图片缩放
鼠标指上去,图片放大,鼠标离开图片恢复原样,并且有放大.缩小效果 Css代码实现:
- JAVA为什么要配置环境变量,怎样配置
自己总结些再加抄点:安装JDK后要配置环境变量,主要有三个:1 JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_042 CLASSPATH ->到哪里找需 ...
- Apache性能优化、超时设置,linux 重启apache
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效.其中调节以下参数Timeout 15 (连接超时 ...
- 【knowledgebase】如何知道partition数
对于调优和排错来说,查看一个RDD有多少个partition是非常有用的.常用的查看方法有如下几种: 1.通过SparkUI查看Task执行的partition数 当一个stage执行时,能通过Spa ...
- js动态增加html页面元素
问题: <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2 ...
- 在linux下获取帮助
1.使用man手册页 man是一种显示Unix/Linux在线手册的命令.可以用来查看命令.函数或文件的帮助手册,另外它还可以显示一些gzip压缩格式的文件. 读者在遇到不懂的命令时,可以用man查看 ...
- 在本地主机上powershell中连接远程主机执行vbs脚本,得到执行结果(2008版及以上)
在桌面版的主机上远程管理服务器版主机,在本地powershell中连接远程主机执行vbs脚本,得到执行结果. 执行步骤: 1.将本地主机上的Hyper.vbs复制到远程连接主机上.例如,本地vbs脚本 ...
- 有了第一台自己开发的pro,开心,明天分享最近整理逆向分析ios的一些东西
最近都在忙于ios深入研究,研究别人的代码,别人的app.然后顺藤摸瓜的找到了关键:逆向,动态特性等. 相关工具:reveal, cycript等. 特别感谢前人的分享,为了打开学习ios的另外一扇大 ...
- Java遍历JSON
JSONObject jsonObject = new JSONObject(s);然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中 JSONObject jsonObject ...