【发布时间】:2014-07-15 21:49:38
【问题描述】:
我正在寻找一种使用 httpWebRequest 从 url 下载 excel 文件并以某种方式解析它的方法 - 这是否意味着将其转换为 .csv 文件,以便我可以简单地使用 TextFieldParser 或将其保留为 excel 文件,我不知道。
private byte[] GetExcelFile()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("url_To_Excel_File");
httpWebRequest.ContentType = "application/vnd.ms-excel";
httpWebRequest.Method = "GET";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
try
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var contents = streamReader.ReadToEnd();
return contents;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
}
我的理解是contents 应该是一个字节数组?如何正确下载此 excel 文件并解析响应?
【问题讨论】:
-
为什么不使用 WebClient 类呢?使用 DownloadData() 下载文件 - 它返回一个字节数组。如果您需要阅读该文件,我建议使用 OleDB 对其进行查询。见这里:stackoverflow.com/questions/18511576/…
-
能否提供在 WebClient 类中使用
DownloadData()的示例代码? -
您无法使用 oledb 从内存流中读取 excel,您必须事先将其保存到文件中。
-
Excel 生成的 xsl 文件中的 Excel 文件通常是二进制形式,没有 excel/oledb 将无法解析。但是,如果你得到一个 CSV 文件,你可以在内存中解析它。但是excel将其保存到磁盘并使用OleDB读取它。