提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2010-06-22 11:38:57.000|阅读 1135 次
概述:在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或 Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件。这样只是说可以访问到 Excel文件,但是还不能真正的操纵Excel文件,本文将给大家一个惊喜,向大家介绍一个开放源码项目Java Excel API。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
JAVA EXCEL API简介
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。
Java Excel API 文档
1.应用示例:
如何从Excel读取数据:
package com.etong.allen; import java.io.*; import java.util.*; import com.roger.util.StringUtil; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; /** *//** * Title: * Description: Excel数据导入到 oracle数据库类. * * Copyright: Copyright (c) 2004 * Company: 易通技术有限公司 * @author Allen * @version 1.0 */ public class ExcelImportOracle ...{ /** *//** * 用于返 回三维数组的ArrayList. */ private static ArrayList subdata = new ArrayList(); /** *//** * Excel中的表名. */ private static String tablename; /** *//** * 文件的路径 */ private static String filePath; /** *//** * 该方法为完成读取Excel中的数据并将数据插入到对应的数据库表中的操作(在调用前需要先调用 setFilePath(String)这个方法.). * @author Administrator * @param data:读取Excel中的数据的数组. * @deprecated:将读取Excel中的数据插入到对应的数据库表 中. * */ public static void ExcelDataImportOracle(String filePath) throws Exception ...{ try ...{ ArrayList al = readExcel(filePath); InsertData(al); } catch (Exception e) ...{ e.printStackTrace(); } } /** *//** * 读取Excel中的数 据.将这些数据放入到一个三维数组中. * @author Administrator * @param filePath 文件路径. * @deprecated:读取Excel中的数据将它放入到ArrayList数组中 (此为三维数组). */ public static ArrayList readExcel(String filePath) ...{ try ...{ subdata.clear();//将静态ArrayList数组清空.(如果不清空原数据会不断累加) InputStream is = new FileInputStream(filePath); Workbook rwb = Workbook.getWorkbook(is); // Sheet st = rwb.getSheet(0);//这里有两种方法获取sheet表,1为名字,而为下标,从0开始 // Sheet st = rwb.getSheet("Book1");// Excel中第一页的页名称. Sheet st[] = rwb.getSheets();// 得到所有Excel中页的列表. for (int a = 0; a < st.length; a++) ...{ ArrayList alList = new ArrayList(); ArrayList tablenames = new ArrayList(); ArrayList tableAndContents = new ArrayList(); tablename = st[a].getName().trim(); int b = 0; for (int i = 1; i < st[a].getRows(); i++) ...{ ArrayList al = new ArrayList(); for (int j = 0; j < st[a].getColumns(); j++) ...{ Cell c00 = st[a].getCell(j, i); // 通用的获取cell值的方式,返回字符串 String strc00 = StringUtil.toISO(c00.getContents().trim()); // 获得 cell具体类型值的方式得到内容. al.add(j, strc00); } alList.add(b, al); b++; } |
tablenames.add(tablename); tableAndContents.add(0, tablenames); tableAndContents.add(1, alList); subdata.add(a, tableAndContents); } rwb.close(); // 关闭 //System.out.println(subdata);// 输出 } catch (Exception e) ...{ e.printStackTrace(); } finally ...{ //删除上传文件 File file = new File(filePath); boolean result = false; if(file.exists()) ...{ result = file.delete(); } else ...{ System.out.println("文件没有找到,无法删除!"); } if(result) ...{ System.out.println("删除成功!"); } else ...{ System.out.println("删除失败!"); } } return subdata; } /** *//** * 将读取的Excel的三维数组数据进行对应的数据库表插入操作. * @author Administrator * @param data:读取Excel中的数据的数组. * @deprecated:将读取Excel中的数据插入到对应的数据库表中. */ private static void InsertData(ArrayList data) ...{ try ...{ String tablename; ArrayList Contents = new ArrayList(); for (int i=0; i tablename = ((ArrayList)((ArrayList)data.get(i)).get(0)).get(0).toString(); Contents = (ArrayList)((ArrayList)data.get(i)).get(1); WfdefineDateOperate.currecorde(tablename,Contents); } } catch (Exception e) ...{ e.printStackTrace(); } } /** *//** * 得到文件路径; * @return filePath */ public String getFilePath() ...{ return filePath; } /** *//** * 设置文件路径的位置; * @param filePath */ public void setFilePath(String filePath) ...{ ExcelImportOracle.filePath = filePath; } /** *//** * 将 readExcel方法读出来的三维数组数据转换成二维数组数据. * @param al * @return 返回二维数组 数据. */ public static ArrayList getDisplayData(ArrayList al) ...{ ArrayList result = new ArrayList(); for(int i = 0;i < al.size();i ++) ...{ ArrayList tmp = (ArrayList)((ArrayList)al.get(i)).get(1); for(int j = 0;j < tmp.size();j ++) ...{ result.add(tmp.get(j)); } } return result; } /** *//** * @param args */ public static void main(String[] args) ...{ } } |
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢