我翻阅过孟子E章大哥的将EXCEL数据导入DataGrid那篇文章,实际操作起来其实是需要客户端先要把EXCEL文件上传到服务器文件夹,再取得数据填充DataGrid。这样我觉得速度会因为网络带宽限制而变的很慢。我的设想是,用户在客户端将EXCEL数据导入页面但用不了上传,只有用户点击处理按钮的时候,再将这个EXCEL数据表以DataSet方式传到服务器处理。这样不管用户在本地选择了什么EXCEL都没关系,只要他点击按钮我才处理。Office Web Component我不太了解,不知道能不能达到这要求。如果可以,那么怎么判断用户是否导入了EXCEL并且从导入了数据的Office Web Component中取得数据并填充到DataSet?希望各位高手赐教。实在不行我也只好控制用户的EXCEL大小并且等他们上传后再处理。

解决方案 »

  1.   

    会Office Web Component的高手在吗?来帮帮小弟!
      

  2.   

    还是不死心啊,必须要上传吗?
    难道没有办法了?客户端装了OFFICE,为什么不可以在客户端处理?
    CSDN的高手快帮帮我吧!
      

  3.   

    还是不死心啊,必须要上传吗?
    难道没有办法了?客户端装了OFFICE,为什么不可以在客户端处理?
    CSDN的高手快帮帮我吧!
      

  4.   

    在客户端用javascript也是可以解析Excel的,解析好了之后再放到hidden里提交到服务器,如果想用服务器语言解析Excel那只能上传,Office控件只能在客户端访问。
      

  5.   

    对的,用JS也可以解析EXCEL的,但是如果要在后台处理的话也只能是上传到服务器了:)
      

  6.   

    那在客户端如何用javascript解析Excel的?
    能给点代码看看吗?
      

  7.   

    建议:直接将文件上传到服务器目录,然后用ole db直接读取EXcel
    //从Excel文件读取数据
    string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended properties=Excel 8.0" ;
    OleDbConnection con = new OleDbConnection ( strCon ) ;
    string strCom = "select * from [data$] " ;/////////////////
    OleDbDataAdapter ole_adp = new OleDbDataAdapter ( strCom , con ) ;
    DataTable dtSrc = new DataTable ( "NewTable" ) ;//////////////////////////
    ole_adp.Fill ( dtSrc ) ;
      

  8.   

    这个我早知道了呀,我的观点是,客户那边都装了OFFICE,有些处理可以在客户那边做嘛?比如:将一个EXCEL导入问题,人家总要先看看EXCEL的内容是不是正确吧。传统方法是把这个EXCEL传到服务器,再用上面的方法填充到Dataset。这么多道程序就是为了让客户看看是不是正确的文件,那么客户端可以处理就好多了。
      

  9.   

    楼主的想法没戏!所以我们通常要告诉客户要导入的EXCEL文件中数据输入必须遵循一定规则,否则不能成功导入,然后我们还要在服务器代码中对EXCEL文件中的数据进行分析后才能导入到数据库。
    一定要这样罗嗦,所以努力改进DATAGRID的编辑功能才是根本。
    没有办法,我想。
      

  10.   

    有这样的东西,而且非常好用,就是要money
      

  11.   

    类似在线编辑器类的网页,用js写的,可以导入excel,word什么的
      

  12.   

    我目前是这样做的,用一个文件浏览,选择文件的存放位置,然后再用OLEDB将其打开.并填充至一个DATASET中去.再对DATASET中的数据读取,执行INSERT到数据库.条件是:客户端的EXCEL中的第一行是字段.并且要有规则.就是说不能出现一列占多列或多行.
      

  13.   

    支持,除非你ActiveX,在客户端实现,因为程序处理文件的时候,都是对本机的文件处理,所以,你只能放到服务器上面.