麻烦阅读excel文件c#

时间:2016-03-31 10:15:35

标签: c# excel frameworks .net-3.5 excel-2007

早上好。 我有很多excel文件。 这很奇怪,但我看不懂。如果我在新的Excel电子表格中复制内容,那么一切都很完美。 我想在阅读之前避免做所有的转换。我尝试了所有传统方式的“扩展属性”,但我总是犯同样的错误:“外部表格不符合预期格式。”可能文件是在Excel 97中创建的。但是使用适当的外部方法不起作用。 你能给我支持吗?谢谢你,美好的一天

在这里,我尝试使用扩展属性Excel 8.0,但我已经尝试过所有这些。

string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PercorsoCompletoFileExcel + ";Extended Properties='Excel 8.0;HDR=Yes;'";

这里我传递一个选择只采取某些列。如果我将文件复制到新的Excel工作表但我希望它能用于原始文件

,我会重复所有工作
strSQL = "SELECT [NumeroContratto] AS [Numero contratto],[Codice Cliente] as [Codice cliente],[Importo Tessera] as [Importo Tessera],[Costo contratto] as [Costo contratto],Spese,Commissioni,[Importo Servizi] as [Servizi],[Importo Sconto] as [Sconto],[Importo Addebito Totale] as [Totale]  from [" + foglio + "] where [Importo Addebito Totale] is not null";
            OleDbCommand cmd = new OleDbCommand(strSQL, conn);
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            da.Fill(ds);

1 个答案:

答案 0 :(得分:0)

以下代码适用于我的情况。

根据我的经验,您需要先将上传的文件保存在应用程序目录中。如果不是,则在读取(.xlsx)文件时会抛出错误。

为(.xls)和(.xlsx)文件使用不同的连接字符串。

string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
//This setting get from configuration file 
string FolderPath =ConfigurationManager.AppSettings("UploadFolder").ToString();
string FilePath = Server.MapPath(FolderPath + "\\" + FileName);
//Save file  
FileUpload1.SaveAs(FilePath);
string conStr = "";
switch (Extension)
{
   case ".xls": //Excel 97-03
                conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;";
                break;
   case ".xlsx": //Excel 07
                conStr = "Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source={0};Extended Properties=\"Excel 12.0 Xml;IMEX=1;HDR=NO\";";

                break;
        }
       conStr = String.Format(conStr, FilePath);

在配置文件中设置(在我的情况下为“Web.config”,因为它是Web应用程序)

<appSettings>
<add key="UploadFolder" value="UploadedFilesFolder" />
</appSettings>