Результат OpenBSD Spreadsheet выводит сообщение «Общая ошибка» в OpenOffice при содержании большого количества строк

Выход таблицы OpenXML работает в Excel (и в Документах Google), но выдает ошибку времени выполнения в OpenOffice 4.x …

Конкретная ошибка

Общая ошибка.

Общая ошибка ввода / вывода.

без дальнейших объяснений. Это на практике произошло только для меня, если для таблицы было более 40 строк; однако, похоже, не было определенного количества строк, которые вызвали проблему.

Я уже создал обходной путь для этой проблемы. Это сообщение – просто поделиться своим ужасным, ужасным решением для тех, кому просто нужно что-то.

Я подозреваю, что причина может быть в заголовках Zip или в самих записях zip и что это либо ошибка в библиотеке, которая записывает Zip-выход для пространства имен System.IO.Packaging (которое, как я полагаю, использует OpenXML), или что OpenOffice имеет очень простой почтовый читатель. Возможно, что-то с центральным файлом каталога смещается в сравнении с сжатым размером файла, но я не потрудился проверить, так как у меня было ограниченное время.

Я могу расследовать еще один день, или если кто-нибудь знает быстрое решение, тогда дайте мне знать. Файлы записываются с использованием примеров, найденных в MSDN, и они корректно открываются в Excel.

В то же время, если кому-то нужна помощь в этом вопросе, я отправляю свое быстрое исправление, так как не смог сам найти его. Он ожидает массив байтов (возможно, сбрасывается из MemorySteam или читает FileStream). Он выводит другой массив байтов.

Кто-то умный, может ли он принять поток, искать 0 по отношению к началу, а затем читать оттуда, возможно, напрямую писать другому, переданному в потоке. Это будет упражнение для читателя, если кто-то не отправит ответ, который делает то же самое.

Если у кого-то есть лучшее решение, я бы не прочь познать.

Использует .NET 4.5

Ссылки System.IO.Compression

using System; using System.IO; using System.IO.Compression; namespace redmasq { public static class ExcelFileFixExample { public static byte[] XLSXOpenOfficePackageFix(byte[] fileData) { using (MemoryStream ms = new MemoryStream(fileData, false)) { using (ZipArchive za = new ZipArchive(ms)) { using (MemoryStream ms2 = new MemoryStream()) { using (ZipArchive za2 = new ZipArchive(ms2, ZipArchiveMode.Create)) { foreach (ZipArchiveEntry entry in za.Entries) { ZipArchiveEntry zae = za2.CreateEntry(entry.FullName, System.IO.Compression.CompressionLevel.Optimal); using (Stream src = entry.Open()) { using (Stream dest = zae.Open()) { src.CopyTo(dest); } } } } return ms2.ToArray(); } } } } } } 
  • Ошибка при настройке переменной рабочей книги - 2147352565
  • VBA для загрузки файла Excel в Sharepoint. Ошибка времени выполнения «1004»
  • Ошибка VBA Runtime 1004 в Range.Clear
  • Ошибка выполнения 1004 при вводе формулы в ячейку
  • Excel: Break on Error не работает в пользовательской функции
  • Как скопировать несколько листов в мастер-лист с использованием отдельных заголовков столбцов
  • Запись данных из Excel в Word
  • Java.lang.NoClassDefFoundError: org / apache / poi / ss / usermodel / Шрифт
  • Runtimeerror 1004 при попытке удалить строку в неактивном защищенном листе
  • Ошибка несоответствия типа: не понимайте, почему
  • Массивная версия генератора частичной перестановки в VBA Excel
  • Interesting Posts

    Передача функции массива в пользовательскую функцию

    Excel сбой при перекрестной фильтрации

    получить вторую строку текстового поля в листе

    Последствия игнорирования CS1762 («Ссылка была создана для встроенной сборки взаимодействия … из-за косвенной ссылки …»)

    Как читать дату как строку из excel в c #?

    Получение каталога файла и отправка в виде вложения в Outlook

    VBA контейнер с несколькими элементами управления

    Word Excel Linking – Относительный путь

    Как вы комбинируете переменные для формирования функции в python?

    COUNTIFS с возможностью нечеткого совпадения по одному из критериев. Возможное?

    Управление аббревиатурами

    сохранить как код диалога excel

    Excel Formula для поиска значения в другой таблице, но принесите результаты ALL

    Есть ли способ сохранить форматирование текста в Excel при извлечении его из листа с помощью C # и сохранении значений в строках?

    Запись формулы в ячейку с помощью OpenXLS

    Давайте будем гением компьютера.