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

Вид: 49496|Ответ: 2

[Источник] Подробное объяснение операции NPOI Excel

[Скопировать ссылку]
Опубликовано 2021-5-16 21:04:14 | | | |
NPOI может читать и писать документы в Word или Excel без установленного Office. NPOI — это открытый проект на C# для чтения и написания компонентных документов Microsoft OLE2, таких как Excel и WORD.
Обзор:

Суждение NPOI по типу даты клетки
https://www.itsvse.com/thread-9649-1-1.html

Импорт фотографий в таблицы Excel с использованием NPOI [с исходным кодом]
https://www.itsvse.com/thread-9477-1-1.html

NPOI задаёт ширину и высоту ячеек
https://www.itsvse.com/thread-3522-1-1.html

. Плагин таблицы Excel для операций чтения и записи NPOI для Net
https://www.itsvse.com/thread-2288-1-1.html

Название собрания
Модули/пространства имён
иллюстрировать
NPOI.DLL
NPOI. POIFS
Библиотека чтения/записи атрибутов документа OLE2/ActiveX
NPOI.DLL
NPOI. DDF
Библиотека чтения/записи рисования Microsoft Office
NPOI.DLL
NPOI. HPSF
Библиотека чтения/записи документов OLE2/ActiveX
NPOI.DLL
NPOI. HSSF
Microsoft Excel BIFF (Excel 97-2003, документ) библиотека формата чтения/записи
NPOI.DLL
NPOI. SS
Публичный интерфейс Excel и движок вычисления формул в Excel
NPOI.DLL
NPOI. Util
Базовая библиотека предоставляет множество полезных функций для разработки других проектов в форматах чтения/записи файлов
NPOI. OOXML.DLL
NPOI. XSSF
Библиотека чтения и записи в формате Excel 2007 (xlsx)
NPOI. OOXML.DLL
NPOI. XWPF
Библиотека чтения/записи в формате Word 2007 (docx)
NPOI. OpenXml4Net.DLL
NPOI. OpenXml4Net
Базовая библиотека zip-пакета OpenXml для чтения и записи
NPOI. OpenXmlFormats.DLL
NPOI. OpenXmlFormats
Библиотека отношений объектов Microsoft Office OpenXml

HSSFWorkbook: является версией Excel 2003 или более ранней версии (включая 2003) с расширением .xls
XSSFWorkbook: это версия Excel 2007 с расширением .xlsx
Автоматически распознаёт версии Excel

При чтении Excel npoi вызывает WorkbookFactory.Create, чтобы автоматически распознавать версию:



Адрес исходного кода:Вход по гиперссылке виден.



Код реализации:

XSSFWorkbook 2007 выдает исключение «Нельзя получить доступ к закрытому потоку»



Тестовый код:



При экспорте файла в поток вызов метода Write приводит к исключению:



Необработанное исключение. System.ObjectDisposedException: Нельзя получить доступ к закрытому потоку.
   на System.IO.MemoryStream.Seek (смещение Int64, лок SeekOrigin)

В HSSFWorkbook этой проблемы нет, и нет способа перегрузить интерфейс IWorkbook Write, как показано на рисунке ниже:



НоОбъект XSSFWorkbook будет иметь дополнительный параметр leaveOpen, адрес исходного кода:Вход по гиперссылке виден.



Решение 1:

Решение 2:

Создайте новый объект NpoiMemoryStream и переопределите метод Close следующим образом:

Используйте его следующим образом:

Исключение XSSFWorkbook CopySheet

Когда лист — мой пользовательский шаблон, вызов метода CopySheet выдаст следующее исключение:

Ссылка на объект не установлена на экземпляр объекта.

Клон-лист с использованием CloneSheet, код выглядит следующим образом:



(Конец)




Предыдущий:Redis MISCONF Redis настроен на сохранение снимков RDB
Следующий:Как сохранить поток в файл на C#/.NET
Опубликовано 17.09.2021 09:46:51 |
KK Learn
Опубликовано 29.01.2023 15:03:59 |
Учись у этой маленькой
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com