Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 Sheets за допомогою 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
Опубліковано 2021-9-17 09:46:51 |
KK Learn
Опубліковано 2023-1-29 15:03:59 |
Вчися у цієї маленької покидьки
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com