1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jinn_0310-excel-util-3.10

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание

Использование инструмента ExcelUtil, упакованного в poi-3.10:

  • Функции:

    • предоставление объектов формата SourceData для ввода и вывода файлов Excel;
    • поддержка объединения заголовков таблиц;
    • поддержка экспорта нескольких листов;
    • поддержка автоматической адаптации ширины ячеек и формата;
    • поддержка пользовательского объединения данных ячеек тела таблицы;
    • поддержка заполнения ячеек цветом по выбору пользователя;
    • поддержка замораживания ячеек по умолчанию (замораживаются только заголовки);
    • поддержка горизонтального выравнивания содержимого ячеек (по центру, по левому краю или по правому краю), по умолчанию — по центру;
    • поддержка вертикального выравнивания содержимого ячеек (по центру, по верхнему краю, по нижнему краю), по умолчанию — по центру;
    • поддержка шрифта, размера шрифта и переноса строк для ячеек;
    • поддержка версий Excel начиная с 2007 года (Excel2007Util);
    • поддержка настройки форматов;
    • поддержка настроек выравнивания и отступа.
  • Среда выполнения:

    1. JDK 7 и выше;
    2. Apache POI 3.10;
    3. pom.xml импортирует зависимости из src/main/lib.

Инструмент Excel (продвинутая версия)

  1. Класс инструмента: nc.impl.saas.file.exceladvanced.ExcelAdvancedUtil.
  2. Особенности:
    • некоторые пользовательские конфигурации ячеек:
      • тип данных;
      • ширина столбцов и высота строк;
      • замораживать ли ячейку на основе этой конфигурации;
      • цвет заливки ячейки;
      • вертикальное положение ячейки;
      • горизонтальное положение ячейки;
      • поддерживает ли ячейка перенос строки;
      • название шрифта, размер шрифта, жирность;
      • настраиваемый формат;
      • количество выравнивания и отступов;
      • объединение строк и столбцов (используя colspan и rowspan);
      • объединение строк и столбцов (с помощью mergeKey).
  3. Пример использования 1:
public class Test {
    public static void main(String[] args) throws Exception {
        // 1. Получение входных данных
        List<SourceSheet> sourceSheetList = getTestData();
        // 2. Настройка выходных данных
        String path = "E:\\xyyuanj\\Downloads\\Excel-Advance-" + System.currentTimeMillis() + ".xlsx";
        File file = new File(path);
        FileOutputStream fos = new FileOutputStream(file);
        // 3. Вызов метода экспорта Excel
        ExcelAdvancedUtil.buildExcel(sourceSheetList, file.getName(), fos);
        fos.close();
    }
    private static List<SourceSheet> getTestData() {
        List<SourceSheet> sourceSheetList = new ArrayList<>();

        SourceSheet sourceSheet = new SourceSheet("测试");
        sourceSheetList.add(sourceSheet);

        SourceTable sourceTable = sourceSheet.createSourceTable();

        /*
         * 1. Конфигурация заголовка (древовидная структура)
         * Обратите внимание:
         * (1) dataProp — это уникальное полевое имя этого столбца, используемое для автоматического определения местоположения данных таблицы в столбце
         * (2) цвет заголовка по умолчанию — Color.GREY_25_PERCENT
         * (3) Если существует несколько таблиц, вы можете настроить количество объединённых столбцов в заголовке, чтобы вручную настроить общую ширину таблицы
         */
        SourceHeaderCell title1 = sourceTable.createSourceHeaderCell("一级标题", Color.SKY_BLUE);

        title1.createChildren("field-1", "重点项目描述")
                // Настройка количества объединённых столбцов
                .setColspan(3)
                // Ширина столбца установлена на 15 символов
                .setWidth(15);
        title1
                .addChildren("field-2", "权重(%)")
                .addChildren("field-3", "上半年考核指标说明")
                .addChildren("field-4", "下半年考核指标说明")
                .addChildren("field-5", "指标类型")
                .addChildren("field-6", "权重(%)");

        /*
         * 2. Конфигурация таблицы
         * Обратите внимание:
         * (1) Таблица должна зависеть от конфигурации заголовка, чтобы успешно записать данные в Excel
         * (2) В таблице только количество объединённых строк имеет эффект, количество объединённых столбцов автоматически адаптируется к конфигурации заголовка
         * (3) Если в данных ячейки есть символы новой строки, необходимо явно объявить конфигурацию переноса строки, чтобы добиться фактического эффекта переноса строки
         */
        final SourceRow sourceRow = sourceTable.createSourceBodyRow();

        // Фиксируем строку и столбец с помощью этой ячейки
        sourceRow
                .addSourceCell("field-1", "行政基础管理工作规范化、标准化建设?", Logic.YES)
                .addSourceCell("field-2", 30, DataType.CELL_TYPE_NUMERIC)
                .addSourceCell("field-3", "协助重新梳理岗位职责、审批流程,建立完善的工作台账。")
                .addSourceCell("field-4", "协助按照内控的要求,做好行政基础管理工作。")
                .addSourceCell("field-5", "定量")
                .addSourceCell("field-6", 100, DataType.CELL_TYPE_NUMERIC);


        SourceRow sourceRow2 = sourceTable.createSourceBodyRow();
        sourceRow2.createSourceCell("field-1", "行政基础管理工作规范化、标准化建设?")
                // Устанавливаем высоту ячейки 35
                .setHeight(35)
                // Количество объединённых строк установлено на 2
                .setRowspan(2)
                // Ячейка автоматически переносится
                .setWrapText(Logic.YES);
        sourceRow2
                .addSourceCell("field-2", 30, DataType.CELL_TYPE_NUMERIC)
                .addSourceCell("field-3", "协助重新梳理岗位职责、审批流程,建立完善的工作台账。")
                .addSourceCell("field-4", "协助按照内控的要求,做好行政基础管理工作。")
                .addSourceCell("field-5", "定量")
                .addSourceCell("field-6", 100, DataType.CELL_TYPE_NUMERIC);


        SourceRow sourceRow3 = sourceTable.createSourceBodyRow();
        sourceRow3
                .addSourceCell("field-1", "行政基础管理工作规范化、标准化建设?")
                .addSourceCell("field-2", 30, DataType.CELL_TYPE_NUMERIC)
                .addSourceCell("field-3", "协助重新梳理岗位职责、审批流程,建立完善的工作台账。")
                .addSourceCell("field-4", ...)
``` «Помогите выполнить административную работу по базовому управлению в соответствии с требованиями внутреннего контроля».

**3. Конфигурация дополнительных элементов**

// Добавляем пустую строку
sourceTable.addSourceAdditionalRow();
sourceTable.addSourceAdditionalRow(new SourceCell("Самооценка сотрудника").setColspan(4).setBold(Logic.YES));
sourceTable.addSourceAdditionalRow(
    new SourceCell("Преимущества").setBold(Logic.YES),
    new SourceCell("Это содержание преимущества").setColspan(3).setAlign(Align.LEFT)
);
sourceTable.addSourceAdditionalRow(
    new SourceCell("Недостатки").setBold(Logic.YES),
    new SourceCell("Это содержание недостатка").setColspan(3).setAlign(Align.LEFT)
);

return sourceSheetList;
}

**4. Пример использования 2:**
```java
import nc.impl.saas.file.exceladvanced.ExcelAdvancedUtil;
import nc.impl.saas.file.exceladvanced.consts.Logic;
import nc.impl.saas.file.exceladvanced.dto.SourceRow;
import nc.impl.saas.file.exceladvanced.dto.SourceSheet;
import nc.impl.saas.file.exceladvanced.dto.SourceTable;

import java.io.FileOutputStream;

public class ExcelAdvanceUtilTest2 {
    public static void main(String[] args) throws Exception {
        SourceSheet sourceSheet = new SourceSheet("sheet1");

        SourceTable sourceTable = sourceSheet.createSourceTable();

        sourceTable
                .addSourceHeaderCell("title_1", "Имя")
                .addSourceHeaderCell("title_2", "Пол")
                .addSourceHeaderCell("title_3", "Возраст")
                .addSourceHeaderCell("title_4", "Контакт");


        sourceTable.addSourceBodyRow(
                new SourceRow()
                        .addSourceCell("title_1", "Чжан Сань", Logic.YES)
                        .addSourceCell("title_2", "Мужской")
                        .addSourceCell("title_3", "26", DataType.CELL_TYPE_NUMERIC)
                        .addSourceCell("title_4", "13066669999", 30)
        );
        sourceTable.addSourceBodyRow(
                new SourceRow()
                        .addSourceCell("title_1", "Ли Сы")
                        .addSourceCell("title_2", "Женский")
                        .addSourceCell("title_3", "30", DataType.CELL_TYPE_NUMERIC)
                        .addSourceCell("title_4", "13700001111")
        );

        String path = "E:\\users\\Downloads\\导出工具测试.xlsx";

        File file = new File(path);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }

        try (FileOutputStream fos = new FileOutputStream(path)) {
            ExcelAdvancedUtil.buildExcel(sourceSheet, fos);
        }


    }
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Использование инструмента экспорта в Excel, упакованного с помощью poi-3.10. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/jinn_0310-excel-util-3.10.git
git@gitlife.ru:oschina-mirror/jinn_0310-excel-util-3.10.git
oschina-mirror
jinn_0310-excel-util-3.10
jinn_0310-excel-util-3.10
master