Sis*_*utl 160 c# excel-2007 xlsx import-from-excel
我正在尝试使用下面显示的代码读取Excel(xlsx)文件.我得到一个"外部表不是预期的格式." 错误,除非我已在Excel中打开该文件.换句话说,我必须首先在Excel中打开文件,然后才能从我的C#程序中读取.xlsx文件位于我们网络上的共享中.如何在不先打开文件的情况下读取文件?谢谢
string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";
using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
DataSet ds = new DataSet();
adaptor.Fill(ds);
}
Run Code Online (Sandbox Code Playgroud)
FAt*_*oon 240
"外部表格不符合预期格式." 通常在尝试使用具有以下连接字符串的Excel 2007文件时发生:Microsoft.Jet.OLEDB.4.0和扩展属性= Excel 8.0
使用以下连接字符串似乎可以解决大多数问题.
public static string path = @"C:\src\RedirectApplication\RedirectApplication\301s.xlsx";
public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
Run Code Online (Sandbox Code Playgroud)
小智 24
谢谢你的代码:)我真的很感激.适合我.
public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
Run Code Online (Sandbox Code Playgroud)
因此,如果您有Excel文件的差异版本,请获取文件名,如果其扩展名为.xlsx,请使用以下命令:
Private Const connstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
Run Code Online (Sandbox Code Playgroud)
如果是.xls,请使用:
Private Const connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + path + ";Extended Properties=""Excel 8.0;HDR=YES;"""
Run Code Online (Sandbox Code Playgroud)
ced*_*lof 14
(我的评论声誉太低,但这是对JoshCaba的参赛作品的评论,使用Ace-engine代替Jet for Excel 2007)
如果您的计算机上没有安装/注册Ace,可以访问:http://www.microsoft.com/downloads/details.aspx? FamilyID = 7554F536-8C28-4598-9B72-EF94E038C891&displaylang = en
它也适用于Excel 2010.
只需添加我的案例.我的xls文件是由网站的数据导出功能创建的,文件扩展名是xls,它可以通常由MS Excel 2003打开.但是Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0都得到了"外部表格不是预期的格式"异常.
最后,问题是,正如例外所说,"它不是预期的格式".虽然它的扩展名是xls,但是当我用文本编辑器打开它时,它实际上是一个格式良好的html文件,所有数据都在<table>中,每个<tr>是一行,每个<td>是一个细胞.然后我想我可以用HTML方式解析它.
小智 6
我有同样的问题。使用以下步骤解决:
1.) 单击文件
2.) 选择“另存为”
3.) 单击下拉菜单(另存为类型)
4.) 选择 Excel 97-2003 工作簿
5.) 单击“保存”按钮
归档时间: |
|
查看次数: |
336429 次 |
最近记录: |