Слияние кода завершено, страница обновится автоматически
Описание
Использование инструмента ExcelUtil, упакованного в poi-3.10:
Функции:
Среда выполнения:
Инструмент Excel (продвинутая версия)
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 )