C# 读取Excel文件
用C#读取Excel文件的好方法是什么?关键是要有一个网页,用户可以从中上传一个Excel文件,然后将其读取并发送到数据库表 OleDB方式在这里是无用的,据我所知,它可以读取使用一个文件,这里会有很多 到目前为止,我发现最好的方法是: 还有其他更好/更新的方法吗C# 读取Excel文件,c#,asp.net,visual-studio-2008,C#,Asp.net,Visual Studio 2008,用C#读取Excel文件的好方法是什么?关键是要有一个网页,用户可以从中上传一个Excel文件,然后将其读取并发送到数据库表 OleDB方式在这里是无用的,据我所知,它可以读取使用一个文件,这里会有很多 到目前为止,我发现最好的方法是: 还有其他更好/更新的方法吗 谢谢。有几种选择 使用时,需要安装excel,并且必须处理COM 对于XLSX文件,您可以使用SDK或第三方库,如 有几种选择 使用时,需要安装excel,并且必须处理COM 对于XLSX文件,您可以使用SDK或第三方库,如 我最近
谢谢。有几种选择
有几种选择
我最近在Linq To Excel方面取得了很好的成功。根据您的具体要求,这可能是一个不错的选择
我最近在Linq To Excel方面取得了很好的成功。根据您的具体要求,这可能是一个不错的选择
使用OLEDB,您可以通过基于要打开的文件名构建连接字符串来访问多个文件。类似于以下的方法应该可以工作: 对于XLSX:
var connString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";", fileName);
对于XLS:
var connString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", fileName);
其中
fileName
标识要打开的文件 使用OLEDB,您可以通过基于要打开的文件名构建连接字符串来访问多个文件。类似于以下的方法应该可以工作:
对于XLSX:
var connString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";", fileName);
对于XLS:
var connString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", fileName);
其中
fileName
标识要打开的文件 我一直在使用,效果非常好。诚然,它已经在桌面应用程序中使用过,但在ASP.net应用程序中应该也能正常工作。我一直在使用它,它工作得非常好。诚然,它已经在桌面应用程序中使用过,但在ASP.net应用程序中应该也能正常工作。oledb提供程序可以工作,但也有一些问题。
如果您没有运行64位版本的驱动程序,则存在列限制。
如果您运行的是64位,则系统上不能有任何32位office产品
我建议在注册表中设置
HKLM\Software\Wow5432Node\Microsoft\Jet\4.0\Engines\Excel
将值TypeGuessRows设置为零
这会导致驱动程序扫描所有行以确定类型。驱动程序有点不确定,因为如果列中的第一个X行数包含数字,然后后面有字符串,则该类型可以被视为数字类型,任何包含字符串的内容都将消失并变为null。
前
zipcode
--------
39934
18883
28472
52256-1252
最后一行可以读取为null,因为它认为前几行是数字,任何不符合该格式的内容都将转换为null
所以你可以使用OLeDB,只需考虑一些工作。
< P> OLeDB提供程序将工作,但也有一些问题。 如果您没有运行64位版本的驱动程序,则存在列限制。 如果您运行的是64位,则系统上不能有任何32位office产品 我建议在注册表中设置 HKLM\Software\Wow5432Node\Microsoft\Jet\4.0\Engines\Excel 将值TypeGuessRows设置为零 这会导致驱动程序扫描所有行以确定类型。驱动程序有点不确定,因为如果列中的第一个X行数包含数字,然后后面有字符串,则该类型可以被视为数字类型,任何包含字符串的内容都将消失并变为null。 前 zipcode -------- 39934 18883 28472 52256-1252 最后一行可以读取为null,因为它认为前几行是数字,任何不符合该格式的内容都将转换为null因此,您可以使用OLeDB,只需考虑一些工作。
< P>开源提供了从Excel文件(和其他Office文件格式)读取和写入的非常全面的功能,而不需要在Web服务器上运行Excel(因此它非常快得多)。 请注意,它目前不处理XLSX文件。开源软件提供了相当全面的功能,可以从Excel文件(以及其他Office文件格式)读取和写入数据,而无需在Web服务器上运行Excel(因此速度要快得多)请注意,它当前不处理XLSX文件。OleDB方法只能读取一个文件是什么意思?@M.Babcock它有连接字符串,如果我是对的,那应该是文件的路径,我需要上传文件,然后读取。对于许多文件。是的,您可以基于要打开的文件构建连接字符串。有什么问题?@M.Babcock,假设我上传了文件File1.xlsx,File2.xls,File3.xls,File4.xlsx,我不知道我会有多少个文件,或者它们是如何命名的。你使用什么上传控制?他们中几乎任何人都会告诉你上传的文件名。OleDB方法只能读取一个文件是什么意思?@M.Babcock它有连接字符串,如果我是对的,那应该是文件的路径,我需要上传文件,然后读取。对于许多文件。是的,您可以基于要打开的文件构建连接字符串。有什么问题?@M.Babcock,假设我上传了文件File1.xlsx,File2.xls,File3.xls,File4.xlsx,我不知道我会有多少个文件,或者它们是如何命名的。你使用什么上传控制?他们中几乎任何人都会告诉你上传的一个或多个文件的名称。