gpt4 book ai didi

c# - 使用 OLEDB 读取 excel

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:37 26 4
gpt4 key购买 nike

我正在我的网站上构建一个 Excel 上传功能。它将使用 OLEDB 读取 excel 数据。问题是用户输入的 excel 文件可以是“真实”excel 文件,也可以是 html 导入扩展属性中的 excel,因此连接字符串不同。现在我用 try catch 来处理它。如果第一个 conn 字符串生成异常,那么它将在 catch 中打开与另一个连接字符串的连接。

问题是我的领导说我不能使用那种方法。那么有什么办法可以做到这一点而无需 try catch (任何相关的抛出异常),或者查看 excel 文件是否在 excel 8.0 扩展属性或 html 导入扩展属性中。

try
{
...
try
{
connection.ConnectionString = GetConnectionString(pathCopy);
connection.Open();
}
catch
{
connection.ConnectionString = GetConnectionStringHTMLEncoded(pathCopy);
connection.Open();
}
...
catch (Exception ex)
{
...
}

谢谢

最佳答案

您可以通过在文本编辑器(如记事本)中打开其中一个 html 字符串编码文件来验证文件的内部构成。您应该看到底层文件仍然是 html 文本。您应该能够读取文件的第一行并检查字符串“html”

var reader = System.IO.File.OpenText(pathCopy);
string firstLine = reader.ReadLine();
if (firstLine.IndexOf("html", StringComparison.InvariantCultureIgnoreCase) > 0)
//some stuff
else
//other stuff

你不应该在二进制文件上得到错误,你只会在字符串中得到一些非常奇怪的字符——幸运的是,字符不会包含字符串“html”。

关于c# - 使用 OLEDB 读取 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com