Apache Poi-библиотека Java с открытым исходным кодом для форматов файлов Microsoft Office
Apache Poi (Плохая реализация запутывания)-это популярная библиотека Java с открытым исходным кодом, разработанную Foundation Apache Software Foundation. POI означает «плохая реализация запутывания» с юмором, ссылаясь на проприетарные бинарные файлы Microsoft. Основная цель Apache Poi состоит в том, чтобы предоставить разработчикам Java набор API, которые позволяют им читать, писать и манипулировать различными форматами файлов Microsoft Office, таких как электронные таблицы Excel (.xls и .xlsx), слово документы (.doc и .docx) и презентации PowerPoint (.ppt и .pptx).
Краткая история Apache Poi #
В начале 2000 -х годов, когда разработчикам Java разработчики Java работали с файлами Microsoft Office, не вдаваясь в основные данные форматов файлов, Apache Foundation начал работать над реверсием форматов файлов Microsoft. Это привело к выводам, что форматы были плохо запутаны и были обработаны. Вот почему имя POI, т. Е. Плохая реализация запутывания . За прошедшие годы библиотека подверглась значительной разработке, добавив поддержку новых функций и форматов файлов, повышая производительность и повышение удобства использования.
поддерживаемые форматы файлов #
Apache Poi поддерживает работу с форматами файлов Microsoft Excel, Microsoft Word и Microsoft PowerPoint.
Microsoft Excel #
Apache Poi имеет следующие API для работы с таблицами Microsoft Excel. ** hssf:-Оправочный формат электронной таблицы-поддерживает работу с 97-2003 и перед электронной таблицей Excel xls Формат файла ** xssf:xml Format — поддерживает Office Office Открыть формат файла XML из электронной таблицы Excel xlsx Форматы файлов
Microsoft word #
Apache Poi имеет следующие API для работы с документами Microsoft Word. ** hwpf:-исправление текстового процессора Format-Читать и написать Microsoft Word 97-2003 DOC Формат файла ** xwpf:xml Word Format — аналогичная функция, установленная на HWPF, но для Office Open XML DOCX Формат файла
Microsoft PowerPoint #
Apache Poi имеет следующие API для работы с презентациями Microsoft PowerPoint. ** HSLF:-Оправочный макет слайда Формат-реализация Java для Microsoft PowerPoint 97-2003 PPT File Format ** xslf:xml Slide Mayout Format — реализация Java для Office Открыть файлы XML Microsoft PowerPoint, т. Е. Формат файла PPTX
microsoft outlook #
** hsmf:**_ Образец реализация глупой почты Format_ -Java для Microsoft Outlook формат файла MSG
Microsoft Publisher #
** hpbf:**_ -исправление издателя Format_ — реализация Java для Microsoft Publisher Формат файла Pub
Microsoft Visio
** hdgf:**_ -образная диаграмма Формат_ — реализация Java для Microsoft Visio VSD -формат10
Установите Apache Poi для java
На момент написания этой статьи последний стабильный выпуск Apache Poi — 5.2.3, который можно загрузить с сайта Apache Poi, Github и Maven. Мы посмотрим, как вы можете установить API из Maven, а также загрузить его с сайта Apache Poi для использования в вашем проекте Java.
Как установить Apache Poi из Maven?
Apache опубликовал артефакты Apache Poi Maven для автоматической установки в проектах Maven с использованием файлов pom.xml. Мы можем установить зависимость в проекте Maven, чтобы он автоматически приносит файлы JAR, используемые для запуска приложения. Ниже приведены шаги, чтобы включить зависимость в Pom.xml вашего проекта Maven. ** Шаг 1:**Откройте свой проект Maven в своей Java IDE. Вы можете использовать идею Netbeans, Eclipse или Intellij в соответствии с вашим собственным выбором. ** Шаг 2:**Добавьте следующую зависимость в файл POM.
org.apache.poi poi 3.9
** Шаг 3:**Добавьте зависимость компонента POI для Office Office Open Open File File Formats следующим образом.
org.apache.poi poi-ooxml 5.2.3
** Шаг 4:**Добавьте зависимость Commons-IO следующим образом.
commons-io commons-io 2.7
** Шаг 5:**Добавьте зависимость log4j следующим образом.
org.apache.logging.log4j log4j-core 2.20.0
На этом этапе ваш проект принесет зависимости, упомянутые выше в файле pom.xml и включать соответствующие файлы JAR в ваш проект для работы с форматами файлов Microsoft Office.
Установить Apache Poi из github #
Apache Poi предоставил экземпляр зеркала на GitHub для доступа и загрузки исходного кода. Вы можете получить доступ к ним из репозитория Apache Poi github.
apache poi скачать #
Вы также можете установить Apache Poi, загрузив последнюю версию Apache Poi с официальной загрузочной страницы Apache. После загрузки повреждены содержимое пакета в папку и включите файлы JAR в ваш проект, чтобы начать с API APACHE POI.
apache poi resources #
- Apache Poi
- Обзор компонентов Apache POI
- Apache Poi скачать
- Apache Poi — Javadocs
- Apache Poi Maven
Что будет дальше
В наших будущих статьях мы будем писать статьи с примерами:
- Использование Apache POI для работы с файлами электронных таблиц MS Excel * Создать рабочую книгу Excel с помощью Apache Poi для Java API * Читать файлы Excel в Java с Apache Poi * Добавить изображение в ячейку Excel с Apache Poi * Работа с формулами Excel с Apache Poi * Вставьте заголовок и нижний колонтитул в Excel с Apache Poi
- Использование Apache POI для работы с файлами MS Word
- Использование Apache POI для работы с файлами презентаций MS PowerPoint
- Java API для доступа к форматам файлов PowerPoint Так что следите за этим.
Apache POI, взаимодействие с Excel
Apache POI представляет собой API, который позволяет использовать файлы MS Office в Java приложениях. Данная библиотека разрабатывается и распространяется Apache Software Foundation и носит открытый характер. Apache POI включает классы и методы для чтения и записи информации в документы MS Office.
Компоненты Apache POI
Описание компонентов
HSSF Horrible Spreadsheet Format Компонент чтения и записи файлов MS-Excel, формат XLS XSSF XML Spreadsheet Format Компонент чтения и записи файлов MS-Excel, формат XLSX HPSF Horrible Property Set Format Компонент получения наборов свойств файлов MS-Office HWPF Horrible Word Processor Format Компонент чтения и записи файлов MS-Word, формат DOC XWPF XML Word Processor Format Компонент чтения и записи файлов MS-Word, формат DOCX HSLF Horrible Slide Layout Format Компонент чтения и записи файлов PowerPoint, формат PPT XSLF XML Slide Layout Format Компонент чтения и записи файлов PowerPoint, формат PPTX HDGF Horrible DiaGram Format Компонент работы с файлами MS-Visio, формат VSD XDGF XML DiaGram Format Компонент работы с файлами MS-Visio, формат VSDX Список компонентов
Наименование (артeфакт) Необходимые компоненты poi commons-logging, commons-codec, commons-collections, log4j poi-scratchpad poi poi-ooxml poi, poi-ooxml-schemas poi-ooxml-schemas xmlbeans poi-examples poi, poi-scratchpad, poi-ooxml ooxml-schemas xmlbeans ooxml-security xmlbeans Подключение Apache POI к проекту
Для подключения Apache POI к проекту необходимо скачать соответствующие библиотеки с официального сайта https://poi.apache.org/download.html.
Если в проекте используется фреймворк maven, то необходимо установить одну из следующих зависимостей (версия может быть более новой) :
org.apache.poi poi 3.16 org.apache.poi poi-ooxml 3.16 На странице описания примера чтения файлов Excel приведен проект, включающий необходимый набор файлов библиотеки Apache POI (poi-3.16.jar, poi-ooxml-3.16.jar, poi-ooxml-schemas-3.16.jar) и сопутствующих библиотек.
На странице рассматриваются следующие классы, используемые для работы с файлами Excel из приложений Java.
- рабочая книга — HSSFWorkbook, XSSFWorkbook
- лист книги — HSSFSheet, XSSFSheet
- строка — HSSFRow, XSSFRow
- ячейка — HSSFCell, XSSFCell
- стиль — стили ячеек HSSFCellStyle, XSSFCellStyle
- шрифт — шрифт ячеек HSSFFont, XSSFFont
Поскольку описание всех классов и методов не разместить на одной странице, то ниже по тексту приводятся ссылки для перехода к исходной документации.
Классы и методы Apache POI для работы с файлами Excel
Рабочая книга HSSFWorkbook, XSSFWorkbook
- HSSFWorkbook
- org.apache.poi.hssf.usermodel
- класс чтения и записи файлов Microsoft Excel в формате .xls, совместим с версиями MS-Office 97-2003;
- org.apache.poi.xssf.usermodel
- класс чтения и записи файлов Microsoft Excel в формате .xlsx, совместим с MS-Office 2007 или более поздней версии.
Конструкторы класса HSSFWorkbook
HSSFWorkbook (); HSSFWorkbook (InternalWorkbook book); HSSFWorkbook (POIFSFileSystem fs); HSSFWorkbook (NPOIFSFileSystem fs); HSSFWorkbook (POIFSFileSystem fs, boolean preserveNodes); HSSFWorkbook (DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes); HSSFWorkbook (DirectoryNode directory, boolean preserveNodes); HSSFWorkbook (InputStream s); HSSFWorkbook (InputStream s, boolean preserveNodes);
preservenodes является необязательным параметром, который определяет необходимость сохранения узлов типа макросы.
Конструкторы класса XSSFWorkbook
XSSFWorkbook (); // workbookType создать .xlsx или .xlsm XSSFWorkbook (XSSFWorkbookType workbookType); XSSFWorkbook (OPCPackage pkg ); XSSFWorkbook (InputStream is ); XSSFWorkbook (File file); XSSFWorkbook (String path);
Основные методы HSSFWorkbook, XSSFWorkbook
Метод Описание createSheet () Создание страницы книги HSSFSheet, XSSFSheet createSheet (String name) Создание страницы с определенным наименованием CreateFont () Создание шрифта createCellStyle () Создание стиля С полным перечнем всех методов класса XSSFWorkbook можно познакомиться на странице http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html.
Классы листов книги, HSSFSheet, XSSFSheet
- org.apache.poi.hssf.usermodel.HSSFSheet
- org.apache.poi.xssf.usermodel.XSSFSheet
Классы HSSFSheet, XSSFSheet включают свойства и методы создания строк, определения размера колонок, слияния ячеек в одну область и т.д.
Основные методы классов работы с листами
Метод Описание addMergedRegion (CellRangeAddress) Определение области слияния ячеек страницы autoSizeColumn (int column) Автоматическая настройка ширины колонки column (отсчет от 0) setColumnWidth (int column, int width) Настройка ширины колонки column (отсчет от 0) createRow (int row) Создание строки row (отсчет от 0) getRow (int row) Получение ссылки на строку row (отсчет от 0) С полным перечнем всех методов класса XSSFSheet можно познакомиться на странице https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html
Классы строк HSSFRow, XSSFRow
- org.apache.poi.hssf.usermodel.HSSFRow
- org.apache.poi.xssf.usermodel.XSSFRow
Классы HSSFRow, XSSFRow включают свойства и методы работы со строками, создания ячеек в строке и т.д.
Основные методы классов HSSFRow, XSSFRow
Метод Описание setHeight (short) Определение высоты строки getHeight() Получение значения высоты в twips’ах (1/20) getHeightInPoints() Получение значение высоты createCell (int) Создание ячейки в строке (отсчет от 0) getCell(int) Получение ссылки на ячейку getFirstCellNum() Получение номера первой ячейки в строке setRowStyle(CellStyle) Определение стиля всей строки С полным перечнем всех методов класса XSSFRow можно познакомиться на странице http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html
Классы ячеек HSSFCell, XSSFCell
Ячейки электронной таблицы используются для размещения информации. В ячейке может быть представлено числовое значение, текст или формула. Также ячейка может содержать комментарий.
Классы HSSFCell, XSSFCell включают свойства и методы работы с ячейками таблицы.
- org.apache.poi.hssf.usermodel.HSSFCell
- org.apache.poi.xssf.usermodel.XSSFCell
Основные методы классов HSSFCell, XSSFCell
Метод Описание getBooleanCellValue() Чтение логического значения ячейки getDateCellValue() Чтение значения ячейки типа java.util.Date getNumericCellValue() Чтение числового значения ячейки типа double getStringCellValue() Чтение текстового значения ячейки (java.lang.String) setCellValue(boolean) Определение логического значения ячейки setCellValue(java.util.Calendar) Определение значения ячейки типа даты setCellValue(java.util.Date) Определение значения ячейки типа даты getCellTypeEnum() Чтение типа значения ячейки CellType setCellComment(Comment) Запись комментария в ячейку getCellComment() Чтение комментария ячейки removeCellComment() Удаление комментария ячейки setHyperlink(Hyperlink) Запись гиперссылки в ячейку getHyperlink() Чтение гиперссылки XSSFHyperlink в ячейке removeHyperlink() Удаления гиперссылки ячейки getCellFormula() Чтение формулы, например SUM(C4:E4) setCellFormula(String) Определение формулы, например =SUM(C4:E4) getCellStyle() Чтение стиля ячейки (XSSFCellStyle) setCellStyle(CellStyle) Определение стиля ячейки getColumnIndex() Определение индекса ячейки setAsActiveCell() Определение активности ячейки С полным перечнем всех методов класса XSSFCell можно познакомиться на странице http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html
Классы стилей ячеек HSSFCellStyle, XSSFCellStyle
С полным перечнем всех свойств и методов класса XSSFCellStyle можно познакомиться на странице http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/CellStyle.html
Ниже в качестве примера представлен метод, формирующий стиль ячейки, в которой :
- текст центрируется по вертикали и горизонтали;
- обрамление ячейки представляет тонкую черную линию по периметру;
- текст переносится на следующую строку (не ячейку), если не вмещается в размер ячейки.
private XSSFCellStyle createCellStyle(XSSFWorkbook book)
Метод setWrapText позволяет определить флаг переноса текста в ячейке согласно ее размеру (ширине). Чтобы перенести текст принудительно, можно в текстовой строке установить символы CRCL, например «Разделитель\r\nтекста».
Классы шрифтов HSSFFont, XSSFFont
С полным перечнем всех свойств и методов класса XSSFFont можно познакомиться на странице http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Font.html
Ниже в качестве примера представлен метод, формирующий шрифт типа «Times New Roman» :
private XSSFFont createCellFont(XSSFWorkbook book) < XSSFFont font = workBook.createFont(); font.setFontHeightInPoints((short) 12); font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD); font.setFontName("Times New Roman"); return(font); >. . . HSSFCellStyle style = book.createCellStyle(); style.setFont(createCellFont(book));Примеры создания файлов Excel и определение стилей ячеек рассмотрены здесь.
Aspose.Cells Java для Apache POI SS — HSSF и XSSF
Иногда мы получаем следующий вопрос: почему мы должны использовать продукты Aspose, а не Apache POI? На этот вопрос легко ответить: особенности и функциональность.
Apache POI SS — HSSF и XSSF
HSSFявляется чистой Java реализацией проекта POI формата файла Excel ‘97 (-2007). XSSF является чистой Java реализацией проекта POI формата файла Excel 2007 OOXML (.xlsx).
HSSF и XSSF предоставляют способы чтения электронных таблиц, создания, изменения, чтения и записи XLS электронных таблиц. Они предоставляют:
- низкоуровневые конструкции для людей с особыми потребностями
- API модели событий для эффективного доступа только для чтения
- полный API пользовательской модели для создания, чтения и изменения файлов XLS
Aspose.Cells for Java
Aspose.Cells for Java is an award-winning Excel Spreadsheet component that allows Java developers to embed the ability to read, write and manipulate Excel® spreadsheets (XLS, XLSX, XLSM, XLSB, XLTX, SpreadsheetML, CSV, ODS), HTML, MHTML, PDF и форматы файлов изображений в свои собственные Java приложения без необходимости полагаться на Microsoft Excel®.
Aspose.Cells for Java — это зрелый, масштабируемый и многофункциональный компонент, который предлагает множество функций, выходящих далеко за рамки простых возможностей экспорта данных других поставщиков. С помощью Aspose.Cells for Java разработчики могут экспортировать данные, форматировать электронные таблицы с максимальной детализацией, импортировать изображения, создавать диаграммы, применять и вычислять сложные формулы, передавать данные Excel® в потоковом режиме, сохранять в различных форматах и многое другое — и все это без использования Microsoft Excel®. или Microsoft Автоматизация офиса.
Почему не Apache POI SS — HSSF и XSSF
Стоит отметить, что некоторые задачи можно выполнить с помощью Aspose.Cells, но нельзя выполнить с помощью Apache POI. Например, если вам нужно преобразовать файлы Excel в Pdf, JSON и изображения, то вы не можете использовать только Apache POI, вам также потребуется Microsoft Excel 365 или другие инструменты.
Вы можете сравнить POI с Aspose.Cells. Для этого предлагаем вам ознакомиться с проектом Aspose.Cells для POI (HSSF и XSSF) — он показывает, как можно выполнять разные задачи, используя Aspose.Cells для .Java API по сравнению с POI. Проект также охватывает функции для работы с текстовыми документами, которые доступны только в Aspose.Cells, но не в Apache POI.
Этот проект также полезен для разработчиков, желающих перейти с POI на Aspose.Cells.
Этот подключаемый модуль использует ознакомительную версию Aspose.Cells. Если вы довольны своей ознакомительной версией, вы можете приобрести лицензию вAspose сайт . Чтобы удалить оценочное сообщение и ограничения функций, необходимо применить лицензию на продукт. После покупки продукта вы получите файл лицензии. Пожалуйста, следуйте инструкциям в«Лицензирование и подписка» статья для этого.
В следующих разделах и статьях мы более подробно рассмотрим некоторые функции и возможности, предоставляемые Aspose.Cells.
Стабильность
Компоненты Aspose тщательно протестированы. Поскольку компоненты Aspose упакованы в один JAR-файл, для их работы никогда не потребуется устанавливать какие-либо дополнительные компоненты или компоненты. Это позволяет не только обеспечить стабильную работу с Aspose.Cells, но и свести риск возникновения непредвиденных ситуаций практически к нулю.
Масштабируемость и скорость
Компоненты Aspose обладают высокой масштабируемостью и молниеносной скоростью. Они являются настоящим решением .NET и безупречно работают как на одном сервере, на котором работает одно приложение, так и на веб-ферме с балансировкой нагрузки, на которой работает корпоративное приложение.
Функции
Компоненты Aspose предоставляют все необходимое для управления файлами Office, а также многое другое. Они разработаны с учетом философии, позволяющей разработчикам достигать наилучших результатов с наименьшим объемом работы.
Компоненты Aspose обеспечивают множество мощных функций, позволяющих сэкономить время. Например,Aspose.Cells предлагает функцию, которая позволяет разработчикам импортировать JSON в файлы Excel. Стоит отметить, что каждый компонент семейства Aspose обладает собственным набором уникальных и мощных функций.
Поддержка, расширение и участие
Поддерживать
С самых первых дней Aspose мы знали, что просто предоставлять нашим клиентам хорошие продукты будет недостаточно. Нам также нужно было обеспечить хорошее обслуживание. Мы сами являемся разработчиками и понимаем, как это неприятно, когда техническая проблема или особенность программного обеспечения мешают вам делать то, что вам нужно. Мы здесь, чтобы решать проблемы, а не создавать их.
Вот почему мы предлагаем бесплатную поддержку. Любой, кто использует наш продукт, независимо от того, купили ли они его или используют для ознакомления, заслуживает нашего полного внимания и уважения.
Вы можете регистрировать любые проблемы или предложения, связанные с Aspose.Cells Java для Apache POI SS — HSSF и XSSF, используя любую из следующих платформ:
Расширяйте и вносите свой вклад
Aspose.Cells Java для Apache POI (HSSF+XSSF) имеет открытый исходный код, и его исходный код доступен на основных веб-сайтах социального кодирования, перечисленных ниже. Разработчикам рекомендуется загружать исходный код и вносить свой вклад, предлагая или добавляя новые функции или улучшая существующие, чтобы другие также могли извлечь из этого пользу.
Исходный код
Вы можете получить последний исходный код из одного из следующих мест
Как настроить исходный код
Пожалуйста, следуйте этим простым шагам, чтобы открыть и расширить исходный код при использовании:
Затмение IDE
- Загрузите/клонируйте исходный код.
- Откройте Eclipse и выберитеФайл >Импорт…
- ВыбиратьОбщий >Существующие проекты в рабочую область.
- Перейти квыберите корневой каталогпоследнего исходного кода, который вы загрузили.
- НажмитеЗаканчиватьдля успешного импорта загруженного проекта.
IDE NetBeans
- Загрузите/клонируйте исходный код.
- Откройте NetBeans и выберитеФайл >Новый проект…
- ВВыберите проект вкладка: ВыбратьJava >Java Проект с существующими исходными кодами.
- ВИмя и местоположение вкладка: Укажите желаемоеназвание проекта иПапка проекта.
- ВСуществующие источники вкладка: НажмитеДобавить папку… и выберите корневой каталог последнего исходного кода, который вы загрузили.
- НажмитеЗаканчивать для успешного создания загруженного проекта.
Образцы кода
В этот раздел входят следующие темы
- Сравнение кода для общих функций в Aspose.Cells и Apache POI — HSSF и XSSF
- Работа с рабочими листами в Apache POI и Aspose.Cells
- Создать новый рабочий лист
- Добавить изображения в рабочий лист
- Преобразовать рабочий лист в CSV
- Копировать лист в рабочей книге
- Изменить порядок листов в книге
- Верхний и нижний колонтитулы
- Коэффициент масштабирования с использованием Apache POI и Aspose.Cells
- Добавить данные в Cells
- Создать новую книгу
- Параметры страницы — настройка «По размеру страницы»
- Установить область печати
- Автоподбор строки и столбца
- Cell Настройки выравнивания
- Скрыть и показать Cells
- Вставить Cell Комментарии
- Итерация строк и столбцов
- Объединить Cells
- Разделение панелей в Apache POI и Aspose.Cells
- Заморозить панели в Apache POI и Aspose.Cells
- Дата создания Cell в Apache POI и Aspose.Cells
- Создание разных типов Cell в Apache POI и Aspose.Cells
- Получение Cell Содержание
- Вставить гиперссылки на лист
- Новая линия в Cells
- Создание сводных таблиц с помощью Apache POI и Aspose.Cells
- Создание диаграмм с использованием Apache POI и Aspose.Cells
- Работа с границами в Apache POI и Aspose.Cells
- Работа с цветами в Apache POI и Aspose.Cells
- Работа со шрифтами в Apache POI и Aspose.Cells
- Функции обработки данных с использованием Aspose.Cells
- Найдите значение в Cells, используя Aspose.Cells
- Рассчитать промежуточные итоги, используя Aspose.Cells
- Импорт данных в рабочие листы с использованием Aspose.Cells
- Экспорт данных из рабочих листов
- Механизм вычисления формулы в Aspose.Cells
- Отслеживание прецедентов и иждивенцев с помощью Aspose.Cells
- Сортировка данных в электронных таблицах
- Добавьте водяной знак Word Art на рабочий лист, используя Aspose.Cells
- Преобразование рабочей книги в HTML с использованием Aspose.Cells
- Обнаружение слияния Cells с использованием Aspose.Cells
- Отображение и скрытие полос прокрутки книг
- Отображение и скрытие вкладок книги с помощью Aspose.Cells
- Зашифровать книгу с помощью Aspose.Cells
- Чтение файла CSV с несколькими кодировками
- Сохраните каждый рабочий лист в другой PDF, используя Aspose.Cells
- Установите цвет вкладки рабочего листа в Aspose.Cells
- Добавить водяной знак Word Art на диаграмму
- Изменить положение и размер диаграммы
- Преобразование диаграммы в изображения с помощью Aspose.Cells
- Создание сводных диаграмм с помощью Aspose.Cells
- Установить заголовки для печати
- Печать рабочих книг с использованием Aspose.Cells
- Преобразование электронной таблицы в PDF с использованием Aspose.Cells
Смотрите также
- [Подробнее об Apache POI] (https://poi.apache.org/)
Работа с клетками Excel в Java с использованием API API Apache POI
Если вы являетесь разработчиком приложений Java, работающим с Excel из ваших приложений Java, вам было бы заинтересовано в предоставлении функциональности манипулирования данными Excel в вашем приложении. Excel позволяет форматировать стиль ячейки, установить тип ячейки для разных типов данных, заполнять ячейку разными цветами и так далее. Apache Poi служит вашим мостом между Java и Excel, предлагая инструменты для манипулирования Excel xlsx файлы программно. В этой серии блогов мы представим манипуляции по искусству клеток Excel с использованием Apache Poi в Java. Давайте погрузимся и обнаружим синергию кода и электронных таблиц!
На протяжении всего блога мы проведем образцы кода и объяснить их следующим образом:
- Создание ячеек в файле Excel
- Создайте ячейки даты в Excel
- Работа с различными типами клеток
- Установка внешнего вида ячейки
Работа с ячейками в файле Excel в java #
Создание ячеек в файле Excel #
//Create Cells XSSFWorkbook wb = new XSSFWorkbook(); XSSFCreationHelper createHelper = wb.getCreationHelper(); XSSFSheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow(0); // Create a cell and put a value in it. Cell cell = row.createCell(0); cell.setCellValue(1); row.createCell(1).setCellValue(1.2); row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string")); row.createCell(3).setCellValue(true); // Write the output to a file try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx"))Приведенный выше фрагмент кода Java демонстрирует использование API Apache POI для работы с ячейками в рабочей книге Excel. Код создает новую рабочую книгу Excel (\ **xssfworkbook** \ ), инициализирует лист в рабочей книге, а затем заполняет ячейки различными типами данных. Во -первых, код создает новый лист под названием « новый лист ». Затем он генерирует строку в индексе 0 на листе и продолжает заполнять ячейки в этой строке. Первой ячейке (индекс 0) присваивается целочисленное значение 1 с использованием метода \ **setCellValue** \ . Напротив, вторая ячейка (индекс 1) устанавливается на десятичное значение 1,2 непосредственно в методе \ **CreateCell** \ . Третья ячейка (индекс 2) содержит строковое значение «Это строка», созданное с использованием метода \ **createrichtextString** \ метод из экземпляра \ **xssfreationHelper** \ . Наконец, четвертая ячейка (индекс 3) заполнена логическим значением «истина». После того, как значения ячейки установлены, код записывает полученную книгу в файл Excel с именем «Workbook.xlsx» с использованием \ **FileOutputStream** \ .
Создание ячейки типа даты #
XSSFWorkbook wb = new XSSFWorkbook(); //Workbook wb = new XSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow(0); // Create a cell and put a date value in it. The first cell is not styled // as a date. Cell cell = row.createCell(0); cell.setCellValue(new Date()); // we style the second cell as a date (and time). It is important to // create a new cell style from the workbook otherwise you can end up // modifying the built in style and effecting not only this cell but other cells. CellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat( createHelper.createDataFormat().getFormat("m/d/yy h:mm")); cell = row.createCell(1); cell.setCellValue(new Date()); cell.setCellStyle(cellStyle); //you can also set date as java.util.Calendar cell = row.createCell(2); cell.setCellValue(Calendar.getInstance()); cell.setCellStyle(cellStyle); // Write the output to a file try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx"))Этот фрагмент кода Java демонстрирует использование API API API Apache для работы с ячейками типа даты в рабочей книге Excel. Код начинается с создания новой рабочей книги Excel (\ **xssfworkbook** \ ). Первая ячейка (индекс 0) предназначена для сохранения значения даты. A \ **Дата** \ объект, представляющий текущую дату и время, устанавливается в качестве значения ячейки с использованием метода \ **setCellValue** \ . Эта ячейка явно не определяется как дата. Для второй ячейки (индекс 1) новый стиль ячейки (\ cellstyle \ ) создается с использованием метода \ createcellstyle \ рабочей книги. Этот стиль затем настроен, чтобы иметь определенный формат даты и времени с использованием метода \ setDataFormat \ . \ CenestaTaformat (). GetFormat (« M/D/Yy H: MM ») \ Создает пользовательский формат даты с шаблоном формата «M/D/Yy H: MM». Второй ячейке присваивается текущая дата и время времени, а к ней применяется вновь созданный стиль ячейки с использованием метода \ setcellstyle \ . Третья ячейка (индекс 2) демонстрирует альтернативный метод для заполнения ячеек типа дат с использованием \ java.util.calendar \ . Подобно второй ячейке, индивидуальный стиль ячейки также применяется к этой ячейке.
Работа с различными типами ячеек #
XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("new sheet"); Row row = sheet.createRow(2); row.createCell(0).setCellValue(1.1); row.createCell(1).setCellValue(new Date()); row.createCell(2).setCellValue(Calendar.getInstance()); row.createCell(3).setCellValue("a string"); row.createCell(4).setCellValue(true); row.createCell(5).setCellType(CellType.ERROR); // Write the output to a file try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx"))В этом образце кода различные стили ячейки применяются к ячеек в файле Excel, используя API Apache POI, как объясняется на следующих шагах.
- Строка создается в индексе 2 на листе с использованием \ **Createrow** (2) \ . Затем ячейки заполняются в этом ряду следующими данными.
- Первой ячейке (индекс 0) присваивается десятичное значение 1.1 с использованием метода \ **SetCellValue** \ .
- Во второй ячейке (индекс 1) текущая дата и время вставляются с использованием объекта \ date \ через метод \ **setCellValue** \ .
- Третья ячейка (индекс 2) содержит дату и время из экземпляра \ \ , установленного с использованием метода \ **setCellValue** \ .
- Четвертая ячейка (индекс 3) содержит текст «строка».
- Пятая ячейка (индекс 4) обозначена для логического значения «истина».
- Двигаясь вперед, конкретный тип ячейки присваивается шестой ячейке (индекс 5), вызывая метод \ **setCellType** \ . Эта ячейка настроена как ячейка ошибок с использованием \ **celltype.error** \ enumeration, что указывает на то, что она будет отображать значение ошибки. Наконец, модифицированная рабочая книга записывается в файл с именем «Workbook.xlsx» с использованием \ **FileOutputStream** \ . Таким образом, этот пример кода демонстрирует, как установить рабочую книгу Excel, применять различные стили ячеек для размещения различных типов данных и в конечном итоге сохранить модифицированную рабочую книгу в файл. Эта практическая иллюстрация демонстрирует возможности библиотеки Apache POI для работы с файлами Excel в Java.
Установка внешнего вида ячейки #
XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow(1); // Aqua background CellStyle style = wb.createCellStyle(); style.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); style.setFillPattern(FillPatternType.BIG_SPOTS); Cell cell = row.createCell(1); cell.setCellValue("X"); cell.setCellStyle(style); // Orange "foreground", foreground being the fill foreground not the font color. style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); cell = row.createCell(2); cell.setCellValue("X"); cell.setCellStyle(style); // Write the output to a file try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) < wb.write(fileOut); >wb.close();Этот фрагмент кода демонстрирует, как манипулировать появлением ячеек в файле Excel, используя библиотеку Apache POI в Java. Это достигается с использованием следующих шагов.
- Строка создается в индексе 1 на листе с использованием \ createrow (1) \ . Следующие изменения вносятся в ячейки в этом ряду.
- Для первой ячейки (индекс 1) создается индивидуальный стиль ячейки с использованием \ wb.createcellstyle () \ . Этот стиль настроен с цветом аква -фонов с использованием \ setFillbackgroundcolor \ и \ IndexedColors.aqua.getIndex () \ . Паттерн для фона устанавливается на «большие пятна» с использованием \ setFillPattern (fillPatterntype.big_spots) \ . Ячейка создается в этой строке в индексе 1 и заполнена значением «x». Ранее созданный стиль применяется к этой ячейке с использованием \ setcellstyle \ .
- Для второй ячейки (индекс 2) создается новый стиль ячейки. Этот стиль разработан с оранжевым цветом переднего плана с использованием \ setfillforegroundcolor \ и \ indexedcolors.orange.getindex () \ . Образец заполнения устанавливается на «твердый передний план» с использованием \ setFillPattern (fillPatterntype.solid_foreground) \ . Другая ячейка создается в индексе 2 в том же ряду и заполнена значением «x». Недавно сгенерированный стиль затем назначается этой ячейке с использованием \ setcellstyle \ . После настройки появлений ячейки измененная рабочая книга записывается в файл с именем «Workbook.xlsx» с использованием \ fileOutputStream \ . Таким образом, этот пример кода демонстрирует, как использовать библиотеку Apache POI для манипулирования появлением ячеек в файле Excel. Продемонстрированные методы включают создание индивидуальных стилей ячеек для управления фоном и цветами переднего плана, а также заполнения шаблонов, обеспечивая гибкость в визуальной настройке электронных таблиц Excel с использованием Java.
Заключение #
Во всех приведенных выше примерах Java для библиотеки Apache POI мы продемонстрировали, как работать с содержимым файла Excel из вашего приложения Java. Образцы кода показали, как создавать ячейки в файле Excel, установить их внешний вид, установить стиль ячейки на различные типы данных, такие как строка, числовые, десятичные и т. Д., И как установить тип типа ячейки на дату. Мы добавим больше примеров для работы с файлами Excel, используя Apache Poi для Java, так что следите за обновлениями.
см. Также
- Создание рабочей книги Excel в Java с помощью Apache Poi
- Работа с формулами Excel в Java, используя Apache Poi
- Добавить изображение в ячейке Excel с Java Poi
- Работа с рабочими листами в Apache POI и Aspose.Cells