下载并保存Excel文件

|| 我正在使用:`private void get_stocks_data()         {             byte []结果;             byte []缓冲区=新的byte [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 ... 谢谢。     
已邀请:
问题出在您的Write_data_to_excel函数中 当您使用
StreamWriter.WriteLine
方法时,它需要字符串, 您将字节作为字符串传递,因此您的二进制值10将成为字符串10 尝试
FileStream f = File.OpenWrite(\"stockdata.xlsx\");
f.Write(input,0,input.Length);
将起作用。     
我建议您改用
WebClient.DownloadFile()
。 这是一种更高级别的方法,将从手动创建请求,处理编码等中抽象出来。     

要回复问题请先登录注册