asp.net mvc4 导入excel数据到数据库显示进度条

lz00728 2014-12-01 05:26:14
RT
有数据在excel中,有多个sheet,每个sheet对应数据库一张表,怎么实现导入数据到数据库的时候显示百分比的进度,望各位大神指导,不甚感激。!!
备注:不使用第三方上传控件
...全文
766 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
偉Vae 2017-08-10
  • 打赏
  • 举报
回复
你这个功能实现了吗?
lz00728 2014-12-04
  • 打赏
  • 举报
回复
引用 8 楼 xhbmj 的回复:
1、遍历获取excel有多少个sheet,作为表总数 2、获取每个sheet下的个数,作为单表记录数 假设sheet1序号为1,sheet2为2,共有10个sheet 总进度条:sheet3序号/10 分进度条:已入库数量/sheet3记录数 即采用2个进度条来做进度显示,当然这种进度是指每个表的数据量都比较大的情况下采取的方案 如果只用一个进度条,最好是能实现得到所有sheet里的行的总数才好做,另外还需要对sheet里的记录进行分段入库
引用 9 楼 FantasyFreed 的回复:
最简单就是利用sheet,不用记录数 比如你有10个sheet 可以遍历这10个sheet 导入一个sheet 进度条走一点。可以在 for或者foreach 的代码里设置 数据记录不好控制,找不到相应的点
看来是我表达的有些问题,我不是不知道如何去计算百分比这个数,而是想知道百分比如何实时呈现在页面上面的这种功能效果。
无爱大叔 2014-12-04
  • 打赏
  • 举报
回复
另外进度条要做成无刷新的你得用ajax轮询请求进度 或 递归更新进度 或者如果你能够知道总记录数的话,可以将总记录数分段;如总记录数为5000条,以100条为分页数, 即0-100条导入完成,更新页面进度条 100/5000; 导入101-200,更新页面进度条 200/5000; ..... 这样你需要jquery ajax写一个递归函数,每次传递分页起止记录数作为参数,在success里更新进度条后再次调用函数 伪代码如下: ajaxImport(1, 100); function ajaxImport(startIndex, endIndex){ $.ajax({ url: "import?startIndex="+startIndex+"&endIndex="+endIndex, context: document.body, success: function(data){ //假定后台传出的data字符串为已入库的数量 if(parseInt(data)<5000){ //这里更新进度条 .... //这里递归调用ajaxImport start = start + 1; end = end + 199; ajaxImport(start, end); } }}); }
无爱大叔 2014-12-04
  • 打赏
  • 举报
回复
引用 10 楼 lz00728 的回复:
[quote=引用 8 楼 xhbmj 的回复:] 1、遍历获取excel有多少个sheet,作为表总数 2、获取每个sheet下的个数,作为单表记录数 假设sheet1序号为1,sheet2为2,共有10个sheet 总进度条:sheet3序号/10 分进度条:已入库数量/sheet3记录数 即采用2个进度条来做进度显示,当然这种进度是指每个表的数据量都比较大的情况下采取的方案 如果只用一个进度条,最好是能实现得到所有sheet里的行的总数才好做,另外还需要对sheet里的记录进行分段入库
引用 9 楼 FantasyFreed 的回复:
最简单就是利用sheet,不用记录数 比如你有10个sheet 可以遍历这10个sheet 导入一个sheet 进度条走一点。可以在 for或者foreach 的代码里设置 数据记录不好控制,找不到相应的点
看来是我表达的有些问题,我不是不知道如何去计算百分比这个数,而是想知道百分比如何实时呈现在页面上面的这种功能效果。[/quote] 百度jquery 进度条
FantasyFreed 2014-12-03
  • 打赏
  • 举报
回复
最简单就是利用sheet,不用记录数 比如你有10个sheet 可以遍历这10个sheet 导入一个sheet 进度条走一点。可以在 for或者foreach 的代码里设置 数据记录不好控制,找不到相应的点
lz00728 2014-12-02
  • 打赏
  • 举报
回复
无爱大叔 2014-12-02
  • 打赏
  • 举报
回复
1、遍历获取excel有多少个sheet,作为表总数 2、获取每个sheet下的个数,作为单表记录数 假设sheet1序号为1,sheet2为2,共有10个sheet 总进度条:sheet3序号/10 分进度条:已入库数量/sheet3记录数 即采用2个进度条来做进度显示,当然这种进度是指每个表的数据量都比较大的情况下采取的方案 如果只用一个进度条,最好是能实现得到所有sheet里的行的总数才好做,另外还需要对sheet里的记录进行分段入库
  • 打赏
  • 举报
回复
定义一个变量。插入一个变量+1.然后变量/总数
lz00728 2014-12-02
  • 打赏
  • 举报
回复
引用 5 楼 ZuoQingYi 的回复:
已导入数据条数 / 总数据条数 可以吗
关键就是不知道如何实时获取到处理了多少条数据这个状态啊。
沐青衣 2014-12-02
  • 打赏
  • 举报
回复
已导入数据条数 / 总数据条数 可以吗
lz00728 2014-12-02
  • 打赏
  • 举报
回复
没人知道怎么解决吗

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧