导入Excel到数据库时出现“外部表不是预期格式”的错误信息,针对这个问题开始很纠结,如果导入的Excel是新建的就不会出现该问题,如果是在导出数据的基础上进行导入,将会出现这样的错误提示,也许很多朋友会问这是为什么呢?

  因为你的Excel是从程序中导出的并且是使用 Response的方式直接把html代码输出到Excel中的 ,其实这是可以解决的,导出的时候使用Excel操作Api来导出就是标准格式,第二种方法在导入的时候启动Excel.exe进程,这样将会有一个新的Excel.

  下面我贴出第二种方法的代码:

1 #region ====Import Vendor按钮=====
2         [AjaxMethod]
3         public void UploadVendorData_Click(object sender, AjaxEventArgs e)
4         {
5             // 上传的文件保存在服务器端的路径
6            string fullFileName = this.FileUploadFieldSelectVendor.PostedFile.FileName;
7             //验证文件类型
8              if (this.CheckFileType(fullFileName))
9             {
10                 string serverPath = Server.MapPath("UpLoad/") + fullFileName.Substring(fullFileName.LastIndexOf("//") + 1);
11
12                 // 保存文件到服务器
13                  this.FileUploadFieldSelectVendor.PostedFile.SaveAs(serverPath);
14
15                 // 导入到DataSet
16                  DataSet myDataSet = new DataSet();
17
18                 excel.Application myExcel = new excel.Application();//创建一个Excel对象(同时启动EXCEL.EXE进程)
19
20                 excel._Workbook workbook = (excel._Workbook)(myExcel.Workbooks.Add(serverPath));//添加新工作簿
21                 excel.Sheets sheets = workbook.Worksheets;
22
23                 //导入数据临时存入DataSet
24                 if (this.ImportExcelToDataSet1(serverPath, ref myDataSet,sheets))
25                 {
26                     #region =========必须有释放Excel=======
27                     this.ExcelDispose(myExcel);
28                     #endregion
29
30                     // 校验数据合法性
31                     if (this.CheckVendorDataSet(myDataSet))
32                     {
33                         //插入临时表
34                         this.projectResourceLogic.AddVendorResource(myDataSet.Tables[0], Request.QueryString["ProjectID"].ToString(), this.CurrentUserInfo.UserID.ToString());
35
36 FileUploadFieldSelectVendor.Reset();
37
38                         this.BindStoreVenderResourceList(Request.QueryString["ProjectID"].ToString());
39
40                         Ext.Msg.Alert("Tip", this.GetMessage("MSG00117")).Show();
41
42                         this.WindowUploadVendorData.Hide();
43                     }
44                 }
45
46                 // 从服务器删除文件
47                 System.IO.File.Delete(serverPath);
48             }
49         }
50
51        
52         #endregion

2.  导入数据临时存入Dataset方法:

View Code

   
1 #region ====导入数据临时存入Dataset(在导出的模板中修改再导入)======
2 /// <summary>
3 /// 获得Excel文件放入dataset
4 /// </summary>
5 /// <param name="filepath"></param>
6 /// <returns></returns>
7 private bool ImportExcelToDataSet1(string filepath,ref DataSet myDataSet, excel.Sheets sheets)
8 {
9 bool success = true;
10 try
11 {
12 for (int i = 0; i < sheets.Count; i++)
13 {
14 excel.Worksheet worksheet = (excel.Worksheet)sheets.get_Item(1);
15 DataTable dt = new DataTable();
16 string cellContent;
17 int iRowCount = worksheet.UsedRange.Rows.Count;
18 int iColCount = worksheet.UsedRange.Columns.Count;
19 excel.Range range;
20 for (int iRow = 1; iRow <= iRowCount; iRow++)
21 {
22 DataRow dr = dt.NewRow();
23
24 for (int iCol = 1; iCol <= iColCount; iCol++)
25 {
26 range = (excel.Range)worksheet.Cells[iRow, iCol];
27
28 cellContent = (range.Value2 == null) ? "" : range.Text.ToString();
29
30 if (iRow == 1)
31 {
32 dt.Columns.Add(cellContent);
33 }
34 else
35 {
36 dr[iCol - 1] = cellContent;
37 }
38 }
39
40 if (iRow != 1)
41 dt.Rows.Add(dr);
42 }
43 myDataSet.Tables.Add(dt);
44 }
45 }
46 catch (Exception ex)
47 {
48 Ext.MessageBox.Alert("Error", "The excel format is wrong.please download from the not filled timesheet page first./n" + ex.Message).Show();
49 success = false;
50 }
51
52 return success;
53 }
54 #endregion

3. 释放Excel

View Code

   
1 #region ==========释放Excel===========
2 /// <summary>
3 /// 关闭Excel进程
4 /// </summary>
5 /// <param name="CurExcel"></param>
6 protected void ExcelDispose(excel.Application CurExcel)
7 {
8 try
9 {
10 if (CurExcel != null)
11 {
12 CurExcel.Workbooks.Close();
13 CurExcel.Quit();
14 System.Runtime.InteropServices.Marshal.ReleaseComObject(CurExcel);
15 CurExcel = null;
16 //销毁Excel对象
17 GC.Collect();
18
19 }
20 }
21 catch (Exception ex)
22 {
23 Ext.Msg.Alert("Excel disponse error:", ex.ToString()).Show();
24 }
25 }
26 #endregion

导入Excel至数据库中 quot;外部表不是预期格式quot;错误信息相关推荐

  1. 导入Excel至数据库中 外部表不是预期格式错误信息

    导入Excel到数据库时出现"外部表不是预期格式"的错误信息,针对这个问题开始很纠结,如果导入的Excel是新建的就不会出现该问题,如果是在导出数据的基础上进行导入,将会出现这样的 ...

  2. c#中导入excel至sql server时出现“外部表不是预期格式”

    导入excel至sql server时出现"外部表不是预期格式"的排查: 首先要注意有两个字符串,一个用于初始化SqlConnection,一个用于初始化OleDbConnecti ...

  3. bartender外部表不是预期格式_批量合并Excel数据时“外部表不是预期格式”或“文件包含损坏数据”的两种情况...

    很多朋友在用Power Query合并(汇总)Excel数据时,碰到过"DataFormat.Error:外部表不是预期格式"或"DataFormat.Error:文件包 ...

  4. mysql外部表不是预期格式_批量Excel数据导入Oracle数据库 导入excel错误:外部表不是预期的格式 解决方案...

    在asp.net网站中导出Excel文件后,再把文件导入到数据库中. 读取Excel文件时,打开连接出错. 错误为:外部表不是预期的格式 解决:检查了一下,导出的Excel是标准文件不是html,没错 ...

  5. 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...

  6. oracle数据库表excel文件位置,“如何将excel表格数据导入到oracle数据库对应的表中?“数据库文件导入excel表格数据库中...

    如何实现Excel表格自动导入到数据库 库?是什么数据库?sql?access?mysql?我以sql2008为例子 1.打开SQL Server Management Studio-任务-数据 2. ...

  7. excel导入错误:外部表不是预期格式

    错误过程:导入excel,open()函数报错; 错误原因1: excel版本问题,低版本不兼容高版本. 解决方案:修改连接字符串,注意连接字符串格式是否有误. string strConn = &q ...

  8. sqlserver导入向导时提示外部表不是预期格式_Excel办公实操,导入本地数据,创建参数查询,就是简单...

    导入数据创建参数查询 在技巧73中已经介绍了使用Excel的"来自Microsoft Query"功能有选择地导入数据的方法,该功能使用了Microsoft Query技术,该技术 ...

  9. sql server 2008:导入excel,出现“外部表不是预期格式“错误

    原因:猜测是因为某些系统导出的excel表自带某些格式(我出现问题的是海信商业系统导出的数据). 解决方法:简单粗暴,将表格另存为excel97-2003版本后,再导入,问题解决.

最新文章

  1. WINDOWS SERVER 2003 DHCP服务器全攻略
  2. org.hibernate.HibernateException: No Session found for current thread
  3. 为了更好——关于博客搬迁的说明
  4. Mysql limit 子查询
  5. 【网站】网站不能在QQ,微信中访问,申诉办法
  6. vc中提取curve
  7. mysql sql exists_数据库sql语句的exists总结
  8. 序列化和反序列化(二)——Serializable 接口
  9. 32岁了,我有机会转行做程序员吗?——Leo网上答疑(1)
  10. Java数组去掉重复的方法集
  11. 最全Mac系统快捷键一览
  12. CDN 回源与文件预热
  13. unity vr是加一个摄像机就行吗_梦工厂和皮克斯员工创办的Baobab谈互动叙事:传统动画与VR动画的探索...
  14. 数据库系统概论-数据库恢复技术
  15. 详解电商订单逻辑流程图
  16. python f检验 模型拟合度_Python 爬取北京二手房数据,分析北漂族买得起房吗? | 附完整源码...
  17. LeetCode-Hot100-无重复字符的最长子串
  18. 致我们的青春,一个敬礼。
  19. 深入浅出Zookeeper集群搭建
  20. formidable示例运行报错,解决方法

热门文章

  1. win10下samba 重新登录注销
  2. Tekton系列之实践篇-我的第一条Pipeline
  3. 搭建Wordpress Mu的插件和注意事项
  4. 【数据结构与算法】期末复习刷题日寄Part01
  5. C++ 双指针汇总(快慢指针, 滑动窗口, 前后指针,左右指针)
  6. Win7 64 位 Vcode Python安装与环境配置
  7. sklearn线性回归,支持向量机SVR回归,随机森林回归,神经网络回归参数解释及示例
  8. vue的组件通信方式
  9. js使用indexof等方法时忽略大小写敏感
  10. Storm DRPC环境搭建笔记