//1.这里为了简便,我只写出了前端页面中的body体部分供参考:

Excel文件

Visible="False">

//2.后端部分代码如下:

//这里是激发导入按钮点击事件

protected void Button1_Click(object sender, EventArgs e)

{

string cfilename = this.fuGlossaryXls.FileName;//获取准备导入的文件名称

if (cfilename == "")

{

Label2.Visible = true;

return;

}

else

{

Label2.Visible = false;

}

//显示进度/

DateTime startTime = System.DateTime.Now;

DateTime endTime = System.DateTime.Now;

// 根据 ProgressBar.htm 显示进度条界面

string templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");

StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));

string html = reader.ReadToEnd();

reader.Close();

Response.Write(html);

Response.Flush();

System.Threading.Thread.Sleep(1000);

string jsBlock;

// 处理完成

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

string fileName = fuGlossaryXls.PostedFile.FileName.Substring(fuGlossaryXls.PostedFile.FileName.LastIndexOf("\\") + 1);//获取准备导入文件的文件名

string suffix = fileName.Substring(fileName.LastIndexOf(".") + 1);//获取准备导入文件的后缀名

System.Threading.Thread.Sleep(200);

int maxrows = 0;//用来记录需要加载的数据总行数

bool err = false;//用来记录加载状态

int errcount = 0;//用来记录加载错误行数

if (fuGlossaryXls.HasFile)//判断当前是否有选取文件

{

if (suffix == "xlsx")

{

DataTable dt = ExcelImport(fileName);

for (int i = 0; i < dt.Rows.Count; i++)

{

maxrows++;

}

//拓展

//DataView myView = new DataView(dt);

//myView.RowFilter = "name is not null";

//int t = myView.Count;//获取满足RowFilter 条件的数据行

//拓展

string sqlconnect = "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456;";//本地数据库链接

SqlConnection conn = new SqlConnection(sqlconnect);

SqlTransaction myTrans = null;

try

{

SqlCommand cmd = new SqlCommand(null, conn);

conn.Open();

myTrans = conn.BeginTransaction();

cmd.Transaction = myTrans;

cmd.CommandText = "delete from test";

cmd.ExecuteNonQuery();//首先执行清除表内容操作

for (int j = 0; j < dt.Rows.Count; j++)//循环向数据库中插入excel数据

{

if (string.IsNullOrEmpty(dt.Rows[j][0].ToString()))

{

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

err = true;

errcount++;

}

else

{

cmd.CommandText = string.Format("insert into test values('{0}','{1}','{2}','{3}')", dt.Rows[j][0], dt.Rows[j][1], dt.Rows[j][2], dt.Rows[j][3]);

cmd.ExecuteNonQuery();//逐行向表中插入数据,注意字段的对应

}

System.Threading.Thread.Sleep(1000);

float cposf = 0;

cposf = 100 * (j + 1) / maxrows;

int cpos = (int)cposf;

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

}

myTrans.Commit();//提交

}

catch (Exception ex)

{

myTrans.Rollback();//回滚

ClientScript.RegisterStartupScript(this.GetType(), "alert", "");

}

finally

{

conn.Dispose();

conn.Close();//关闭数据库连接

}

}

else

{

ClientScript.RegisterStartupScript(GetType(), "", "alert('请选择Excel文件!');", true);

}

}

else

{

ClientScript.RegisterStartupScript(GetType(), "", "alert('请选择要导入的Excel!');", true);

}

if (!err)//加载中并没有出现错误

{

// 处理完成

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

}

else

{

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

}

System.Threading.Thread.Sleep(1000);

endTime = DateTime.Now;//录入完成所用时间

TimeSpan ts1 = new TimeSpan(startTime.Ticks);

TimeSpan ts2 = new TimeSpan(endTime.Ticks);

TimeSpan ts = ts2.Subtract(ts1).Duration(); //取开始时间和结束时间两个时间差的绝对值

String spanTime = ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒";

jsBlock = "";

Response.Write(jsBlock);

Response.Flush();

}

public DataTable ExcelImport(string fileName) //建立Excel表链接,返回Excel表数据

{

//EXCEL 的连接串

string sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +

"Data Source=C:\\Documents and Settings\\Administrator\\桌面\\" + fileName + ";" +

"Extended Properties='Excel 8.0;IMEX=1';";

//string sConnectionString = "Microsoft.ACE.OLEDB.4.0;" +

//"Data Source=C:\\Documents and Settings\\Administrator\\桌面\\" + fileName + ";" +

//"Extended Properties='Excel 8.0;IMEX=1';";

OleDbConnection objConn = new OleDbConnection(sConnectionString);//建立EXCEL的连接

//说明:程序运行到这里的时候有时会出错“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”,此时大多数情况下我们只需要去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载一个AccessDatabaseEngine.exe安装即可,原因在于你的office没有安装ACCESS组件

objConn.Open();

OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);

OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

objAdapter1.SelectCommand = objCmdSelect;

DataSet objDataset1 = new DataSet();

objAdapter1.Fill(objDataset1, "XLData");

DataTable dt = objDataset1.Tables[0];

//DataView myView = new DataView(dt);

objConn.Close();//关闭EXCEL的连接

return dt;

}

php导入excel 进度条,.NET_进度条在.net导入Excel时的应用实例,本文实例讲述了进度条在.net导 - phpStudy...相关推荐

  1. Layui页面元素之选项卡、进度条、面板、表格 、徽章、时间线、辅助元素

    Layui页面元素之选项卡.进度条.面板.表格 .徽章.时间线.辅助元素 效果 demo 选项卡.面板.时间线很重要 效果 demo <!DOCTYPE html> <html> ...

  2. 4.23 使用数据条功能使数值更加直观 [原创Excel教程]

    1. 本节课将为您演示条件格式中的数据条功能.使用数据条功能,可以非常直观的查看选定区域中数值的大小情况.点击选择G列单元格.  2. 接着点击条件格式按钮,打开条件格式选项菜单.  3. 然后点击数 ...

  3. oracle导出一个表数据库,excel怎么导出多个表格数据库数据-一个excel表格中有多个sheet,如何将其导入oracle数......

    一个excel表格中有多个sheet,如何将其导入oracle数... 解决方案如下: 可以新建一个查询,查询你所说的2个表中的所有数据 运行查询,这样查询结果就包含了你要的数据,再把查询结果导出 就 ...

  4. mysql自动匹配数据,excel自动从数据库匹配相应的数据:excel导入表格

    如何在excel表格中链接另一个excel表中的数据库 这个具体要看链接的具体要求 如果单纯链接,可以考虑使用超级链接 其他的可以考虑公式,如vlookup进行匹配 或者使用vba事件实现的 Exce ...

  5. excel导入mysql语句_求助:用SQL语句从Excel将数据导入到SQL数据库

    这个是Excel的,比如是test.xls 欠费年份 欠费开始月份 欠费结束月份 应缴金额(月租) 2001             9                 12            9 ...

  6. php连接excel表格数据类型,TP5 中使用PHPExcel 导出导入数据到excel表格

    将下载好的PHPExcel文件夹放置在框架中的Vendor目录下,注意目录的结构,按照我的代码来基本上直接引用就能使用,如下图: 导出数据代码如下 //导出数据表 开始 public function ...

  7. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...

     本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    (三)SSIS的简介    (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...

  8. vue表单中批量导入功能_spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据

    一.前端vue+element 1.前端使用element的upload组件来实现文件的上传 style="display: inline-flex;margin-right: 8px&qu ...

  9. c#如何实现excel导入到sqlserver,如何实现从sqlserver导出到excel中(详细)

    对于从sqlserver中导入.导出excel,虽然sqlserver已经给了较为简单的方式,通过交互式的对话框形式实现,但是有时这种方式存在的很多问题,比方说导入.导出数据不全.而且,对于一个项目而 ...

  10. php导入csv wps乱码,《excel打开csv格式乱码》 WPS不兼容EXCEL打开后出现乱码怎么解决...

    SAP数据导入Excle后为什么中文显示乱码? 哪位能告知,谢谢 应该是打开方式题!按下列顺序打开: 1.运行Microsoft excel 2.选择菜单件---打开 3.选择你导出的excel文件 ...

最新文章

  1. 2020 年,让 OKR 助力你稳住 flag 清单!
  2. 爬虫——基本库的使用
  3. UITabBarController+UINavigationController+UIToolBar
  4. python—多线程之线程之间共享数据(Queue)
  5. abstract类_012、Java的抽象方法、接口和String类
  6. 02.环境准备-idea配置maven
  7. 计算机组成原理(白中英) 第七章 课后题答案
  8. 精神分析理论-弗洛伊德
  9. [NOI2015]小园丁与老司机
  10. VScode 用socks5代理连接远程服务器
  11. Unity系统Cube的法线
  12. CF1428F Fruit Sequences
  13. 基于微信小程序的校园食堂窗口自助点餐系统#毕业设计
  14. 疫情大考之后 企业数字化转型或将出现报复性增长
  15. labview—word报表使用
  16. 牛屎芯片 | 硬件之家
  17. 博学谷python_博学谷 python
  18. 盘点一下国内智能巡检机器人TOP5
  19. NOIP 2022 游记
  20. 02325《计算机系统结构》自考大题:第 4 章

热门文章

  1. css3 动画之 2D旋转 3D旋转 放大
  2. panic: time: missing Location in call to Time.In
  3. matlab RBF神经网络对iris鸢尾花数据集进行分类
  4. 三菱FX系列PLC以太网连接kepwareopc软件
  5. html 漂亮的边框效果图,Css效果之好看的边框颜色大全
  6. <read papers>学术论文的基金项目和研究成果格式怎么标注?
  7. 模数实例(SEAL/smallmodulus.h 2.3.0)
  8. 还记得有一年红帽考试的一道题吗?创建一个大小为250M的逻辑卷
  9. RK3399平台开发系列讲解(内核设备树篇)3.25、WIFI设备树的解析
  10. NR LDPC 03- Tanner