- 浏览: 438351 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (211)
- 思考》感想 (11)
- 数据库操作 譬如Oracle大叔 (7)
- java,咱们有缘吗 (16)
- delphi,你还好吗 (2)
- SSH,哥三儿好 (31)
- 问题!问题?问题!? (9)
- WITH WORK (1)
- 算法与模式 莫事^_^ (10)
- JSP,可以叫你P兄么 (2)
- 啊,咋科斯╮(╯▽╰)╭ (6)
- 巨人肩上的小石子 (2)
- flash她妹flex (38)
- 项目管理 (10)
- 奥特曼,你弟Android来了 (4)
- 麻辣儿gis (0)
- maven 嘛味儿 (3)
- ws 哇塞 webservice (5)
- Oh,no!!!,NoSql (1)
- QQ他哥也是个企鹅,Linux (6)
- 姓i还是姓my 你都叫batis ibatis (3)
- 我喜欢夏天(春天旁边的那个季节)Springside (1)
- 测试! 测就测吧,没有喝(⊙o⊙) (3)
- 是晕+_+ 是浮云 还是云计算 (4)
- ExtJS 你是flex他哥还是他妹 (10)
- svg 你丫的资料真少 (3)
- 叫屁屁还是叫加加 ⊙﹏⊙ c++ (5)
- 鸟,还是只百灵鸟 BIRT (1)
- 权限管理 有权真好 是吧-_-! (1)
- SSH (2)
- 哥三儿好 (2)
- nginx (1)
- Oh (1)
- no!!! (1)
- NoSql (1)
最新评论
-
mong619226543:
谢谢
No identifier specified for entity -
akka_li:
没看懂啥意思!什么原因导致java.net.SocketExc ...
java.net.SocketException: Connection reset 问题解决方法 -
west_jing:
1L正解,<mvc:annotation-driven/ ...
<mvc:default-servlet-handler/> 导致 Controller失效 -
u010954806:
tgfhfdhdf
Spring Security 国际化文件 messages_zh_CN.properties 中文解释 -
yenshen:
我也碰到这个问题了,找了一大圈,最终问题解决了:<con ...
<mvc:default-servlet-handler/> 导致 Controller失效
flex 上传excel 导入数据库
前端用flex上传excel,因为此例子用的是flex3, 所以通过 servlet 进行处理(如果是flex4的话 可以用remoteobject处理),servlet 可以利用jxl 处理excel,并报存到数据库。
----------》前端代码
----------》servlet代码
其中就是jxl处理流时,必须先过滤http header,看到了个解决方案(http://blog.csdn.net/sdrzths/archive/2010/04/09/5467876.aspx)还是报jxl.read.biff.BiffException: Unable to recognize OLE stream 的错,其实解决是打印上传的excel ,发现结果是
------------ae0cH2Ef1Ij5Ij5ae0ei4ei4Ef1cH2
Content-Disposition: form-data; name="Filename"
users.xls
------------ae0cH2Ef1Ij5Ij5ae0ei4ei4Ef1cH2
Content-Disposition: form-data; name="Filedata"; filename="users.xls"
Content-Type: application/octet-stream
??à?±á
所以http 头应该是8行,得以解决。
感谢下面博主
Flex 利用 Blazeds上传文件 http://blog.csdn.net/chuangxin/archive/2010/09/13/5881758.aspx
如何在jsp中读取客户端的excel文件中的数据 http://blog.csdn.net/sdrzths/archive/2010/04/09/5467876.aspx
JXL读Excel文件到数据库
http://hi.baidu.com/liupeng_cn/blog/item/74140eef714e1cfcb2fb95cb.html
前端用flex上传excel,因为此例子用的是flex3, 所以通过 servlet 进行处理(如果是flex4的话 可以用remoteobject处理),servlet 可以利用jxl 处理excel,并报存到数据库。
----------》前端代码
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" horizontalAlign="center"> <mx:Style> global { fontSize : 12; } </mx:Style> <mx:Script> <![CDATA[ private var file:FileReference = new FileReference(); // 上传状态指示, 和下面的文本框绑定 [Bindable] private var stateText:String = "请选择一个文件上传"; // createChildren 比 creationComplete 事件更早发生, 省的注册事件侦听, 直接在这里写了 protected override function createChildren():void { super.createChildren(); file.addEventListener(Event.SELECT, file_select); file.addEventListener(Event.COMPLETE, file_complete); file.addEventListener(ProgressEvent.PROGRESS, file_progress); } // 选择 1 个文件的事件 private function file_select (e:Event):void { stateText = "选择了文件 " + file.name; } // 上传完毕后的事件 private function file_complete (e:Event):void { stateText = "上传完毕"; } private function file_progress (e:ProgressEvent):void { stateText = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%"; } // 先判断一下文件大小, 再上传, FileService.aspx 就是上传地址 private function upload ():void { if (file.size > 0) { stateText = "正在上传 " + file.name; var request:URLRequest = new URLRequest("http://localhost:8080/jxlDemo/uploadFile"); file.upload(request); } } ]]> </mx:Script> <mx:Panel width="250" height="112" layout="vertical" title="上传示例" verticalAlign="middle" horizontalAlign="center" > <mx:HBox> <mx:TextInput text="{stateText}" width="160" editable="false"/> <mx:Button label="浏览" click="file.browse();"/> </mx:HBox> <mx:HBox> <mx:Button label="上传" click="upload();"/> </mx:HBox> </mx:Panel> </mx:Application>
----------》servlet代码
package com.xx; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; public class UploadFileServlet extends HttpServlet { private String createTableSql = "";// 创建数据库的sql private String colType = "varchar2(255)";// 字段类型 private String key = "id";// 主键 private String charSet = "utf8";// 表格字符类型 private String ENGINE = "InnoDB";// 表格类型 private String tableName = "tempExcelToH2";// 表名称 private String colName = "col";// 默认字段名 private Connection conn = null; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletInputStream is = req.getInputStream(); // int i = is.read(); // while(i != -1){ // System.out.print((char)i); // i = is.read(); // } /*过滤HTTPHeader,否则jxl会报无法识别文件结尾的错误*/ byte[] junk = new byte[1024]; for(int i = 0; i < 8; i++) { is.readLine(junk, 0,junk.length); } excelToDB(is); } private void excelToDB(InputStream is){ try { jxl.Workbook rwb = Workbook.getWorkbook(is); Sheet rs = rwb.getSheet(0); // 读取第一个sheet int colNum = rs.getColumns();// 列数 int rowNum = rs.getRows();// 行数 System.out.println("colNum rowNum------------------" + rowNum + "," + colNum); System.out.println("start create base-------------------------"); getConntion(); String tableSql = getCreateTableSql(rowNum, colNum); Statement st = conn .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); st.execute(tableSql); st.close(); System.out.println("create base end -------------------------"); String sql = getColName(rowNum, colNum); PreparedStatement ps = null; String strValue = ""; ps = conn.prepareStatement(sql); for (int i = 0; i < rowNum; i++) { strValue = ""; for (int j = 0; j < colNum; j++) { Cell c = rs.getCell(j, i); strValue = c.getContents(); ps.setString(j + 1, strValue); } ps.addBatch(); } ps.executeBatch(); conn.commit(); if (ps != null) { ps.close(); } System.out.println(" insert end-------------------------"); close(); } catch (Exception e) { e.printStackTrace(); } } private String getCreateTableSql(int rowNum, int colNum) { // 可以做成可配置文件 createTableSql = "create table " + tableName + "( `" + key + "` bigint generated by default as identity, "; String temp = ""; for (int j = 0; j < colNum; j++) { temp = temp + "`" + colName + j + "` " + colType + " DEFAULT NULL,"; } createTableSql = createTableSql + " " + temp + " PRIMARY KEY (`" + key + "`)" + ");"; return createTableSql; } private String getColName(int rowNum, int colNum) { // 可以做成可配置文件 String colSql = ""; String colValue = ""; for (int j = 0; j < colNum; j++) { colSql = colSql + "`" + colName + j + "`,"; colValue = colValue + "" + "?,"; } return "insert into " + tableName + " (" + colSql.substring(0, colSql.lastIndexOf(",")) + ")values(" + colValue.substring(0, colValue.lastIndexOf(",")) + ")"; } private void getConntion() { try { String driver_class = "org.h2.Driver"; String connection_url = "jdbc:h2:tcp://localhost/jxltest"; String user_name = "sa"; String db_password = ""; Class.forName(driver_class); conn = DriverManager.getConnection(connection_url, user_name, db_password); } catch (Exception e) { e.printStackTrace(); } } private void close() { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
其中就是jxl处理流时,必须先过滤http header,看到了个解决方案(http://blog.csdn.net/sdrzths/archive/2010/04/09/5467876.aspx)还是报jxl.read.biff.BiffException: Unable to recognize OLE stream 的错,其实解决是打印上传的excel ,发现结果是
------------ae0cH2Ef1Ij5Ij5ae0ei4ei4Ef1cH2
Content-Disposition: form-data; name="Filename"
users.xls
------------ae0cH2Ef1Ij5Ij5ae0ei4ei4Ef1cH2
Content-Disposition: form-data; name="Filedata"; filename="users.xls"
Content-Type: application/octet-stream
??à?±á
所以http 头应该是8行,得以解决。
感谢下面博主
Flex 利用 Blazeds上传文件 http://blog.csdn.net/chuangxin/archive/2010/09/13/5881758.aspx
如何在jsp中读取客户端的excel文件中的数据 http://blog.csdn.net/sdrzths/archive/2010/04/09/5467876.aspx
JXL读Excel文件到数据库
http://hi.baidu.com/liupeng_cn/blog/item/74140eef714e1cfcb2fb95cb.html
- jxlDemo.zip (18.9 KB)
- 下载次数: 167
发表评论
-
Flex4多文件上传示例
2014-05-17 22:59 877---》Flex <?xml version=&quo ... -
FLEX 与 JSP 视图的结合开发
2014-03-26 17:08 1151FLEX 与 JSP 视图的结合开发 虽然用了flex作了视 ... -
Extjs 、Flex 组件通过事件解耦示例
2013-10-09 17:18 916Extjs 、Flex 组件通过事件解耦示例 ---》app ... -
heightChart 与extjs整合 动态生成历史曲线 和实时曲线
2012-03-05 17:09 5111heightChart 与extjs整合 动态生成历史曲线 和 ... -
flex 、servlet生成验证码方式
2011-05-05 14:07 1195flex 、servlet生成验证码方式 -----》fle ... -
中文命名的图片加载后 本地能显示 但放到服务器上就出不来了
2011-02-22 16:16 2709中文命名的图片加载后 本地能显示 但放到服务器上就出不来了 ... -
flex 程序减肥几种方法
2011-02-17 14:05 992flex 程序减肥几种方法 1、采用模块化管理 2、采用RS ... -
flex动态换肤的demo例子
2011-02-17 09:30 1326flex动态换肤的demo例子 ----》建立三个css样 ... -
as3的反射
2011-01-28 17:30 1250as3的反射 ------》getDefinitionByN ... -
AIR 应用: 黏贴 剪贴板中的图片
2011-01-24 11:14 1456AIR 应用: 黏贴 剪贴板中的图片 from : http: ... -
flex 权限系统研究
2011-01-12 15:59 1676f权限一般就是涉及增删改查 的操作。 思路,利用flex-s ... -
如何在左上角画图
2010-12-31 10:50 1399如何在左上角画图 我想在屏幕左上角 画一个正方形,按下面的代码 ... -
类似javadoc功能的 flex asdoc
2010-12-21 10:33 1276配置过程 可以参考 http://bhsc-happy.ite ... -
Printing Multiple Pages Using PrintDataGrid(Flex打印系列 转载)
2010-12-20 14:08 1226In the previous tutorial, we kn ... -
Flash Builder 找不到所需的 Adobe Flash Player 调试器版本 问题解决
2010-12-15 13:28 5666Flash Builder 找不到所需的 Adobe Flas ... -
Cairngrom Demo程序撰写心得
2010-12-10 14:42 1094------》执行顺序 初始化事件与处理进行绑定组件( ... -
felx包含到jsp中去
2010-10-08 15:05 1494Jsp包含到flex中用iframe; Flex包含到jsp中 ... -
为什么定义事件用<mx:Metadata> 标签
2010-10-08 11:01 3316定义方法方式: <mx:Metadata> ... -
mate框架应用几点心得
2010-09-29 11:23 1201mate框架应用几点心得 *** new 事件的时候一定要冒 ... -
后台的返回的结果集是object类型的,不是具体对象?
2010-09-14 14:43 1427后台的返回的结果集是object类型的,不是具体对象? 解决方 ...
相关推荐
"flex excel智能比对导入数据功能"是一个高效、智能的解决方案,它利用Java作为后台处理引擎,Flex作为前端用户界面,实现了从Excel文件中自动识别数据并将其准确地导入到数据库中的功能。以下是对这个功能的详细...
本案例聚焦于“flexDataGrid导入Excel”的主题,它涉及到ActionScript(AS)编程语言如何与Excel文件进行交互。FlexDataGrid是Adobe Flex框架中的一个组件,用于展示和操作数据集,而Excel则是广泛使用的电子表格...
根据给定的信息,本文将详细解释Flex框架中利用as3xls库进行Excel文件读写的实现原理及具体步骤。 ### 一、as3xls简介 as3xls 是一个用于Adobe Flex和ActionScript 3项目的库,它允许开发人员轻松地创建、读取和...
4. **数据导入导出**:在Flex应用中,结合POI可以实现从Excel文件导入数据到数据库,或者将数据库结果导出为Excel文件,为用户提供方便的数据管理工具。 5. **性能优化**:POI 提供了流式处理API,如SXSSF,用于...
用户可以导入现有的Excel模板,或导出设计好的报表为Excel格式,以便于分享、分析或进一步处理。 5. **数据逻辑处理**: 报表设计器不仅展示数据,还处理数据逻辑。这意味着它可以将从数据库获取的数据与用户在...
CSV文件可以被多种程序读取,包括电子表格软件(如Microsoft Excel)和数据库管理系统。 4. **DataGridCSVExportExample.mxml**:这是一个MXML文件,它是Flex应用程序的主要源代码文件。这个例子可能展示了如何在...
它可以将数据库状态定义为一种“数据集”,这种数据集可以是XML、CSV或者Excel格式的文件。这使得开发人员能够方便地创建和维护测试用例的数据环境,无论是在单元测试还是集成测试中都非常有用。 在描述中提到的...
提供货物 分类,货物明细的数据维护,以及excel导入导出数据的功能。另提供填写销售单的货物价格,折扣,数量自动换算等细节功能。 系统设置模块: 提供明确到增删改查的权限功能。提供数据库备份,恢复功能。提供...
Struts中的Action作为控制层,Spring管理事务,而Jxl和JFreeChart分别用于数据导入和报表可视化。 以上就是从Java开发工程师的简历中提取出的关键知识点,涵盖了从基础语言到框架,再到实际项目经验的多个方面,...
- **数据源关联**:支持多种数据源的连接,包括但不限于数据库、文件系统等,实现异构数据源之间的表关联,从而实现多源填报的需求。 #### 四、数据处理灵活性 - **JavaScript数据结构调整**:用户可以通过...
1. 数据导入与预处理:R提供了多种库,如`readr`、`data.table`和`tidyverse`套件,用于读取各种格式的数据(如CSV、Excel、数据库等)。预处理包括清洗缺失值、异常值处理、数据类型转换以及数据整合,这通常使用`...
7. **导出和导入**:可以将数据导出到Excel或其他格式,也可以从外部文件导入数据,增强了数据交换的能力。 在提供的压缩包文件中,我们可以看到以下文件: - **FLEXHTML.BAS**:可能包含与`vsFlexGrid`相关的辅助...
责任描述:使用 Silverlight 开发,包括 Excel 生成及导入、报告生成图形显示。 7. 基于 POF 的电子产品可靠性预计软件 项目描述:基于 POF 的电子产品可靠性预计软件。 开发环境:VS2008+SqlServer 2005。 责任...
- 集成了Adobe Flex Builder,支持创建高级的Flex应用程序,并将Crystal Reports报表嵌入其中。 - 支持使用salesforce.com作为数据源,扩展了与云端服务的集成能力。 - **条形码与图形化元素**: - 支持Code 39...
这可能涉及到读取CSV、Excel(.xlsx)、数据库文件或其他格式。如果CrowBase是一个数据库,我们可能需要用到如`DBI`和`odbc`包来连接和查询数据。 2. **数据探索**:导入数据后,我们将进行初步的数据探索,了解...
在R中,我们可以使用`read.table()`或`read.csv()`函数从CSV文件中加载数据,或者使用`read_excel()`函数读取Excel文件。对于更复杂的文件格式,如SQL数据库,可以使用`dbConnect()`和`dbGetQuery()`等函数进行操作...
12.3 把现有项目导入SpringSource Tool Suite 491 12.3.1 问题 491 12.3.2 解决方案 492 12.3.3 工作原理 492 12.4 更快地构建更好的应用程序 493 12.4.1 问题 493 12.4.2 解决方案 494 12.4.3 工作...
12.3 把现有项目导入SpringSource Tool Suite 491 12.3.1 问题 491 12.3.2 解决方案 492 12.3.3 工作原理 492 12.4 更快地构建更好的应用程序 493 12.4.1 问题 493 12.4.2 解决方案 494 12.4.3 工作...