none
Download arquivo excel usando C# .NET RRS feed

  • Pergunta

  • Preciso fazer o download de um arquivo excel dentro de url da intranet da empresa onde trabalho já testei diversos códigos diferentes e todos acontecem a mesma coisa: "eu baixo o arquivo porém não consigo abrí-lo", pois a informação que contém dentro do arquivo é a que está abaixo (só consigo abrir com o bloco de notas):

    <html>

       <head>
          <script language="JavaScript1.2">
             /**
              * Get the virtual directory name (e.g. http://host/"<virtualdir>"/...)
              *
              * @return String The virtual directory name.
              */
             function getVirtualDir()
             {
                 var strUrl = window.location.href;
                 //Find the third slash (e.g. http://...'/'...)
                 var nStart = strUrl.indexOf("/");
                 nStart = strUrl.indexOf("/", nStart + 2) + 1;
                 //Find the fourth slash (after the virtual dir name)
                 var nEnd = strUrl.indexOf("/", nStart + 1);
                 return strUrl.substring(nStart, nEnd);
             }

             /*
              * forward to the erl component
              */
             function doForward() {
                // get the query parameters
                var strArg = "";
                var strSearch = window.location.search;
                if (strSearch != null && strSearch.length > 0) {
                   strArg = strSearch + "&";
                } else {
                   strArg = "?";
                }
                strArg += "ReLoad=" + new Date().getTime();

                // forward to the erl component
                window.location.replace("/" + getVirtualDir() + "/component/erl" + strArg);
             }
          </script>
       </head>
       <body onload="doForward()">
       </body>
    </html>

    Fiz um teste para fazer um download de uma imagem a partir de uma url da internet e também aconteceu a mesma coisa.

    Segue abaixo os códigos que já testei:

    -- Teste 1:

    string url = "http://erilink.ericsson.se/eridoc/erl/objectId/09004cff86eedde6?docno=&action=current&format=excel12book";
    WebClient Client = new WebClient();
    Client.DownloadFile(url, @"C:\Temp\POs Manual Log.xlsx");

    -- Teste 2:

    string url = "http://erilink.ericsson.se/eridoc/erl/objectId/09004cff86eedde6?docno=&action=current&format=excel12book";
    WebClient Client = new WebClient();
    Stream strm = Client.OpenRead(url);
    StreamReader sr = new StreamReader(strm);
    StreamWriter sw = new StreamWriter(@"C:\temp\POs Manual Log.xlsx");
    sw.Write(sr.ReadToEnd());
    sw.Close();
    strm.Close();

    -- Teste 3:

    string url = "http://erilink.ericsson.se/eridoc/erl/objectId/09004cff86eedde6?docno=&action=current&format=excel12book";
    WebClient Client = new WebClient();
    Stream responseStream = Client.OpenRead(url);
    byte[] buffer = new byte[2048];
    FileStream newFile = new FileStream(@"C:\Temp\POs Manual Log.xlsx", FileMode.Create);
    int readCount = responseStream.Read(buffer, 0, buffer.Length);

     while (readCount > 0)
         {
             //Escrever o arquivo
             newFile.Write(buffer, 0, readCount);
             readCount = responseStream.Read(buffer, 0, buffer.Length);
         }
     newFile.Close();
     responseStream.Close();

    Alguém pode me ajudar, por favor?

    quarta-feira, 8 de janeiro de 2014 13:31