下载并保存excel文件

本文关键字:文件 excel 保存 下载 | 更新日期: 2023-09-27 17:50:13

我正在使用:`private void get_stocks_data(({byte[]结果;byte[]buffer=新字节[4096];

        WebRequest wr = WebRequest.Create("http://www.tase.co.il/TASE/Pages/ExcelExport.aspx?sn=he-IL_ds&enumTblType=AllSecurities&Columns=he-IL_Columns&Titles=he-IL_Titles&TblId=0&ExportType=1");
        using (WebResponse response = wr.GetResponse())
        {
            using (Stream responseStream = response.GetResponseStream())
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    int count = 0;
                    do
                    {
                        count = responseStream.Read(buffer, 0, buffer.Length);
                        memoryStream.Write(buffer, 0, count);
                    } while (count != 0);
                    result = memoryStream.ToArray();
                    write_data_to_excel(result);
                }
            }
        }`

下载excel文件,

这种方法来填充我电脑上的文件:

private void write_data_to_excel(byte[] input)
    {
        StreamWriter str = new StreamWriter("stockdata.xls");
        for (int i = 0; input.Length > i; i++)
        {
            str.WriteLine(input[i].ToString());
        }
        str.Close();
    }

结果是我得到了很多数字。。。我做错了什么?我下载的文件是excel 2003版,在我的电脑上我有2007。。。谢谢

下载并保存excel文件

我建议您改用WebClient.DownloadFile()

这是一种更高级别的方法,它将从手动创建请求、处理编码等方面进行抽象。

Write_data_to_excel函数存在问题
当您使用StreamWriter.WriteLine方法时,它需要字符串,
您将字节作为字符串传递,因此您的二进制值10现在将是字符串10
尝试FileStream f = File.OpenWrite("stockdata.xlsx");
f.Write(input,0,input.Length);
,这将起作用。