php导入excel 进度条,.NET_进度条在.net导入Excel时的应用实例,本文实例讲述了进度条在.net导 - phpStudy...
//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...相关推荐
- Layui页面元素之选项卡、进度条、面板、表格 、徽章、时间线、辅助元素
Layui页面元素之选项卡.进度条.面板.表格 .徽章.时间线.辅助元素 效果 demo 选项卡.面板.时间线很重要 效果 demo <!DOCTYPE html> <html> ...
- 4.23 使用数据条功能使数值更加直观 [原创Excel教程]
1. 本节课将为您演示条件格式中的数据条功能.使用数据条功能,可以非常直观的查看选定区域中数值的大小情况.点击选择G列单元格. 2. 接着点击条件格式按钮,打开条件格式选项菜单. 3. 然后点击数 ...
- oracle导出一个表数据库,excel怎么导出多个表格数据库数据-一个excel表格中有多个sheet,如何将其导入oracle数......
一个excel表格中有多个sheet,如何将其导入oracle数... 解决方案如下: 可以新建一个查询,查询你所说的2个表中的所有数据 运行查询,这样查询结果就包含了你要的数据,再把查询结果导出 就 ...
- mysql自动匹配数据,excel自动从数据库匹配相应的数据:excel导入表格
如何在excel表格中链接另一个excel表中的数据库 这个具体要看链接的具体要求 如果单纯链接,可以考虑使用超级链接 其他的可以考虑公式,如vlookup进行匹配 或者使用vba事件实现的 Exce ...
- excel导入mysql语句_求助:用SQL语句从Excel将数据导入到SQL数据库
这个是Excel的,比如是test.xls 欠费年份 欠费开始月份 欠费结束月份 应缴金额(月租) 2001 9 12 9 ...
- php连接excel表格数据类型,TP5 中使用PHPExcel 导出导入数据到excel表格
将下载好的PHPExcel文件夹放置在框架中的Vendor目录下,注意目录的结构,按照我的代码来基本上直接引用就能使用,如下图: 导出数据代码如下 //导出数据表 开始 public function ...
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 (三)SSIS的简介 (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...
- vue表单中批量导入功能_spring boot mybatis+ vue 使用POI实现从Excel中批量导入数据
一.前端vue+element 1.前端使用element的upload组件来实现文件的上传 style="display: inline-flex;margin-right: 8px&qu ...
- c#如何实现excel导入到sqlserver,如何实现从sqlserver导出到excel中(详细)
对于从sqlserver中导入.导出excel,虽然sqlserver已经给了较为简单的方式,通过交互式的对话框形式实现,但是有时这种方式存在的很多问题,比方说导入.导出数据不全.而且,对于一个项目而 ...
- php导入csv wps乱码,《excel打开csv格式乱码》 WPS不兼容EXCEL打开后出现乱码怎么解决...
SAP数据导入Excle后为什么中文显示乱码? 哪位能告知,谢谢 应该是打开方式题!按下列顺序打开: 1.运行Microsoft excel 2.选择菜单件---打开 3.选择你导出的excel文件 ...
最新文章
- 2020 年,让 OKR 助力你稳住 flag 清单!
- 爬虫——基本库的使用
- UITabBarController+UINavigationController+UIToolBar
- python—多线程之线程之间共享数据(Queue)
- abstract类_012、Java的抽象方法、接口和String类
- 02.环境准备-idea配置maven
- 计算机组成原理(白中英) 第七章 课后题答案
- 精神分析理论-弗洛伊德
- [NOI2015]小园丁与老司机
- VScode 用socks5代理连接远程服务器
- Unity系统Cube的法线
- CF1428F Fruit Sequences
- 基于微信小程序的校园食堂窗口自助点餐系统#毕业设计
- 疫情大考之后 企业数字化转型或将出现报复性增长
- labview—word报表使用
- 牛屎芯片 | 硬件之家
- 博学谷python_博学谷 python
- 盘点一下国内智能巡检机器人TOP5
- NOIP 2022 游记
- 02325《计算机系统结构》自考大题:第 4 章
热门文章
- css3 动画之 2D旋转 3D旋转 放大
- panic: time: missing Location in call to Time.In
- matlab RBF神经网络对iris鸢尾花数据集进行分类
- 三菱FX系列PLC以太网连接kepwareopc软件
- html 漂亮的边框效果图,Css效果之好看的边框颜色大全
- <read papers>学术论文的基金项目和研究成果格式怎么标注?
- 模数实例(SEAL/smallmodulus.h 2.3.0)
- 还记得有一年红帽考试的一道题吗?创建一个大小为250M的逻辑卷
- RK3399平台开发系列讲解(内核设备树篇)3.25、WIFI设备树的解析
- NR LDPC 03- Tanner