nrkhi401 Ответов: 1

как преобразовать байтовые данные в формат excel


ПРИВЕТ,

Я храню файлы (word, excel, pdf) в sqlserver, и при загрузке файла мы используем приведенный ниже код:-

for (int i = 0; i < file.Tables[1].Rows.Count; i++)
               {
                   Byte[] data = (Byte[])file.Tables[1].Rows[i]["FileBlob"];
                   string s = System.Text.UTF8Encoding.UTF8.GetString(data);
                   Response.Write(s);
                   byte[] bytearray = (data);
                   System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                   //Response.Write( encoding.GetString(bytearray)) ;

                   string filename = file.Tables[1].Rows[i]["FileName"].ToString();
                   test.Text = filename + "<\br>";
                   string path = dir + "/" + filename;
                   var file1 = new FileInfo(Path.Combine(dir.FullName, filename));
                   if (!file1.Exists) // you may not want to overwrite existing files
                   {
                       using (Stream stream = file1.OpenWrite())
                       using (StreamWriter writer = new StreamWriter(stream))
                       {
                         writer.Write(encoding.GetString(bytearray);
                          writer.Flush();

                       }
                   }
                   zip.AddFile(path, "Files");
               }
           }



при записи байтовых данных в файл excel мы получаем поврежденный файл. когда мы используем приведенный ниже код:-
писатель.Запись (кодировка.Метода getString(объект ByteArray);

выше строка работает для текстового файла и может отображать данные в текстовом файле проблема заключается в word, excel и pdf-файле.

1 Ответов

Рейтинг:
2

Richard MacCutchan

writer.Write(encoding.GetString(bytearray);

Почему вы преобразуете содержимое файла из его родной формы в строку? Это уничтожит данные Excel.