FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 12477|回复: 19
打印 上一主题 下一主题

EXCEL导入问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-15 11:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
EXCEL 模板:
姓名       学号        科目      成绩    日期
张三   2000001     数学       80       2014-07-01
数据库后台:
学号            科目编码        成绩     日期
2000001       002                80      2014-07-01

问题:
1、这样的导入该怎么处理(直接导入数据库,最后前台提示成功导入);
2、我想先把Excel读取到前台的grid里显示,再批量保存到数据库,该怎么处理;

沙发
发表于 2014-8-15 12:04:19 | 只看该作者
首先你要借助第三方工具,来读取Excel文件
板凳
发表于 2014-8-15 12:14:37 | 只看该作者
一直想要一个这样的demo,建议老大加一个到在线示例供大家参考,谢谢了
地板
 楼主| 发表于 2014-8-15 12:53:51 | 只看该作者
sanshi 发表于 2014-8-15 12:04
首先你要借助第三方工具,来读取Excel文件

大神  是NPOI这样的第三方的吗
5#
发表于 2014-8-15 14:47:06 | 只看该作者
以前处理过,流程是这样 把Excel问题通过导入形式存到服务器上,然后读取成 datatable 并用grid显示处理,然后再把datatable保存到数据库
6#
发表于 2014-8-15 14:56:31 | 只看该作者
需要的话找我,发你一个DEMO
7#
 楼主| 发表于 2014-8-15 21:47:57 | 只看该作者
leetle 发表于 2014-8-15 14:56
需要的话找我,发你一个DEMO

求demo 邮箱:2282059928@qq.com
8#
 楼主| 发表于 2014-8-15 21:48:31 | 只看该作者
啃O 发表于 2014-8-15 14:47
以前处理过,流程是这样 把Excel问题通过导入形式存到服务器上,然后读取成 datatable 并用grid显示处理, ...

你的意思先把excel上传到服务器再在服务器上处理吗
9#
发表于 2014-8-18 17:22:29 | 只看该作者
1通过FINIUI上传控件传到服务器上.记录上传的物理路径
2通过下面读到DATATABLE中
protected DataTable InputExcel(string Path)
         {
             try
             {
                 string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Path + ";" + "Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";//=Microsoft.Jet.OLEDB.12.0
                 OleDbConnection conn = new OleDbConnection(strConn);
                 conn.Open();
                 OleDbDataAdapter myCommand = null;

                 string strExcel = "select * from [Sheet1$]";
                 myCommand = new OleDbDataAdapter(strExcel, strConn);
                 DataTable dt = new DataTable();
                 myCommand.Fill(dt);
                 conn.Close();
                 return dt;
             }
             catch (Exception ex)
             {
                 throw new Exception(ex.Message);
             }
         }
3.再用DATATABEL的ROWS.COUNT判断条数内通这INSERT INTO表中.

如:FOR(I=0,I<DATATABLE.ROWS.COUNT,I++)
MODEL.NAME=DATABATLE.ROW[I][0].TOSTRING()
INSERTINTO TABEL
10#
发表于 2014-8-18 17:23:15 | 只看该作者
上面OLEDB12是OFFICE 2007及以后的格式.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-25 21:34 , Processed in 0.047443 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表