导入Excle数据至数据库 “外部表不是预期的格式”错误信息

在操作excel将数据从外部导入到数据库时,

刚开始操作的没有问题的,却报出了:“外部表不是预期的格式”错误信息。

仔细查看excel没有问题,

查阅资料,发现有人说:

 

解决方法:
用记事本打开你的excel文件,看看显示是否为乱码。
若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;
若是乱码,我这边测试是不会提示这个错误的,可以成功导入。

其实出现这个错误的原因是,你的Excel是从程序中导出的,并且是使用 
Response的方式直接把html代码输出到Excel中的 
其实是可以解决的,导出的时候使用Excel操作Api来导出就是标准格式
-----------------------------------------------------------------------------------------------------
遇到了这个问题,Response输出的EXCEL文件修改后上传更新时出错,
“外部表不是预期的格式”
解决方式:
1 .用EXCEL另 存为功能另存成标准格式XLS格式(Response导出的其实是网页文件)

 

文章出处:http://www.cnblogs.com/Fly-sky/archive/2009/11/03/1595227.html

附上导入excel数据的代码:

 

ExpandedBlockStart.gif 代码
 1  ///   <summary>  
 2  ///  读取Excel文档 
 3  ///   </summary>  
 4  ///   <param name="Path"> 文件名称 </param>  
 5  ///   <returns> 返回一个数据集 </returns>  
 6  public  DataSet ExcelToDS( string  Path) 
 7 
 8  string  strConn  =   " Provider=Microsoft.Jet.OLEDB.4.0; "   + " Data Source= " +  Path  + " ; " + " Extended Properties=Excel 8.0; "
 9  OleDbConnection conn  =   new  OleDbConnection(strConn); 
10  conn.Open(); 
11  string  strExcel  =   ""
12  OleDbDataAdapter myCommand  =   null
13  DataSet ds  =   null
14  strExcel = " select * from [sheet1$] " ;//这也是不方便的一点,如果修改excel文件sheet的名称,这里也要跟着变化。如果名称不对会报错:'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。原因就在这里。
15  myCommand  =   new  OleDbDataAdapter(strExcel, strConn); 
16  ds  =   new  DataSet(); 
17  myCommand.Fill(ds, " table1 " ); 
18  return  ds; 
19 

 

碰到过的问题,查一下,记录下来,虽有重复,可供参考。呵呵,错一点,改一点,也就进步了。开心,好运!

转载于:https://www.cnblogs.com/angleSJW/archive/2010/04/01/1702676.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中将Excel数据写入数据库,可以按照以下步骤: 1. 安装Microsoft.Office.Interop.Excel和System.Data.SqlClient这两个NuGet包 2. 使用Microsoft.Office.Interop.Excel读取Excel数据 下面是一个读取Excel数据的示例代码: ```csharp Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open(filePath); Excel.Worksheet sheet = workbook.Worksheets[1]; int lastRow = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row; for (int i = 2; i <= lastRow; i++) { string name = sheet.Cells[i, 1].Value.ToString(); string age = sheet.Cells[i, 2].Value.ToString(); string gender = sheet.Cells[i, 3].Value.ToString(); // 将数据插入到数据库中 } workbook.Close(); excel.Quit(); ``` 3. 使用System.Data.SqlClient将数据写入数据库 下面是一个将Excel数据写入到SQL Server数据库的示例代码: ```csharp string connectionString = "Data Source=.;Initial Catalog=TestDB;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand("INSERT INTO UserInfo(Name, Age, Gender) VALUES(@Name, @Age, @Gender)", connection); command.Parameters.AddWithValue("@Name", name); command.Parameters.AddWithValue("@Age", age); command.Parameters.AddWithValue("@Gender", gender); command.ExecuteNonQuery(); } ``` 在这个示例中,我们首先创建了一个连接字符串,指定了数据库的连接信息。然后,我们使用 SqlConnection 类打开数据库连接,并创建一个 SqlCommand 对象,用于执行 INSERT 语句将数据插入到数据库中。最后,我们通过 AddWithValue 方法向 INSERT 语句中添加参数,并调用 ExecuteNonQuery 方法执行 INSERT 语句。 通过以上步骤,我们就可以将Excel数据写入到数据库中了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值