(转).net中导入excel文件显示进度条

这篇博客介绍了如何在ASP.NET中导入大量Excel数据时显示进度条,通过结合JavaScript和服务器端代码实现动态更新进度。文章详细展示了从读取ProgressBar.htm页面内容,到在数据处理过程中不断更新进度条状态的过程。
摘要由CSDN通过智能技术生成

在ASP.NET中经常会遇到Excel文件导入数据库的问题,遇到数据量比较大的时候,最好显示进度条。

进度条设计是参考网上某牛人提供的代码,利用JS实现的,谢谢这个大牛了(忘记了当时记录下他的大名了,:()。具体思路:首先将后台服务器上 ProgressBar.htm 页面内容(其中有html和js代码)完全读取出来,并write到前台。然后在数据导入前,添加js调用,如下:

 jsBlock = "<script>BeginTrans('开始处理...');</script>";

 Response.Write(jsBlock);
 Response.Flush();

其次,在处理每条数据导入的过程中,添加如下js调用:

 System.Threading.Thread.Sleep(20);

 float cposf = 0;
 cposf = 100 * i / maxrows;
 int cpos = (int)cposf;

 jsBlock = "<script>SetPorgressBar('" + "第" + i.ToString() + "条','" + cpos.ToString() + "');</script>";
 Response.Write(jsBlock);
 Response.Flush();

*******************************************************

以下是完整的实现过程......

前台.aspx部分代码:

<tr>
       <td align="center" style="height: 25px; width: 100px;">父分类</td>
       <td valign="middle" style="height: 25px">
       <asp:TextBox ID="tbParent" runat="server" CssClass="textinput" Text="" Width="150px"></asp:TextBox>
       <asp:TextBox ID="tbParentId" runat="server" CssClass="textinput" Text=""Width="19px" ></asp:TextBox>
       <asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="Red" Text="不能为空"
                                                    Visible="False"></asp:Label></td>
</tr>
<tr>
       <td align="center" style="height: 24px; width: 100px;"> Excel文件</td>
       <td style="height: 24px">
       <asp:FileUpload ID="fuGlossaryXls" runat="server" />
       <asp:Label ID="Label2" runat="server" Font-Bold="True" ForeColor="Red" Text="不能为空"
                                                    Visible="False"></asp:Label></td>
</tr>

... ... ...

<asp:Button ID="btnImport" runat="server" CssClass="mybotton" Text="导  入" Width="60px" OnClick="btnImport_Click" ></asp:Button> 

以下是在FileUpload控件中,选择了相应文件后点击“导入”.aspx.cs文件中响应事件。

protected void btnImport_Click(object sender, EventArgs e)
    {
        string cparentname = this.tbParent.Text.Trim();
        string cparentid = this.tbParentId.Text.Trim();
        if (cparentname == "")
        {
            Label1.Visible = true;
            return;
        }
   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值