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

OSCHINA-MIRROR/free-EasyXls

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

###EasyXls

Использование EasyXls позволяет удобно работать с Excel. Цель этого проекта — решить проблему импорта и экспорта простых файлов xls без каких-либо стилей.

####Особенности EasyXls:

  1. Поддерживает преобразование xls в List.
  2. Поддерживает преобразование xls в List.
  3. Поддерживает преобразование List в xls.
  4. Поддерживает преобразование List в xls.
  5. Поддерживает формат конфигурации xml.
  6. Поддерживает создание конфигурации Config с использованием java-кодирования.

####Maven

<dependency>
  <groupId>com.github.abel533</groupId>
  <artifactId>EasyXls</artifactId>
  <version>1.1.0</version>
</dependency>

Версия 1.1.0 от 2015-10-08:

  • При выводе excel добавлена поддержка OutputStream (в версии 1.0.0 поддерживался только InputStream для преобразования в List<?>)
  • Поддержка IO потоков упрощает операции при загрузке и скачивании.

В проекте есть простой генератор конфигураций в формате xml, который можно использовать для создания конфигураций. Для этого нужно создать main метод в проекте и вызвать следующий метод:

EasyXls.openGenerater();

####Поддерживаемые типы столбцов: — int; — long; — float; — double; — java.lang.Integer; — java.lang.Long; — java.lang.Float; — java.lang.Double; — java.util.Date; — java.math.BigDecimal.

####Зависимости проекта:

<dependency>
  <groupId>net.sourceforge.jexcelapi</groupId>
  <artifactId>jxl</artifactId>
  <version>2.6.12</version>
</dependency>

####Описание параметров конфигурации: Некоторые свойства действуют только при записи в xls, они отмечены как «запись», а некоторые используются только при чтении из xls и помечены как «чтение». Общие параметры не имеют меток.

Общие параметры:

  • cache: при использовании конфигурации xml можно выбрать, следует ли активировать кэш. Включение кэша предотвращает повторный анализ файла конфигурации xml, что повышает эффективность при повторном использовании. Однако новые настройки не вступят в силу, если вы измените файл конфигурации.
  • sheet: имя тега sheet («запись»).
  • class: класс POJO или Map, соответствующий excel.
  • sheetNum: номер листа для чтения («чтение»).
  • startRow: начальная строка для чтения («чтение»).
  • maxRow: максимальное количество строк для чтения, строки сверх этого количества не будут считываться («чтение»).
  • header: указывает, будет ли экспортироваться заголовок по умолчанию («запись»).

Параметры столбца Column:

  • name: соответствующее имя поля Java.
  • header: соответствующий заголовок excel («запись»).
  • type: тип соответствующего столбца, если он не установлен, то поля POJO будут автоматически сопоставлены с типом поля. Если используется Map, используется собственный формат xls («чтение»).
  • width: ширина соответствующего столбца (единица измерения: пиксели) («запись»).
  • key: столбец, требующий значения, если этот столбец пуст, чтение остановится. В основном это делается для предотвращения чтения пустых строк, и только первый столбец с key=true имеет эффект («чтение»).

####Пример Часть xml:

<?xml version="1.0" encoding="GBK" standalone="yes"?>
<excel>
  <cache>false</cache>
  <sheet>一次性费用</sheet>
  <class>po.Charges</class>
  <sheetNum>0</sheetNum>
  <startRow>1</startRow>
  <columns>
    <column>
      <name>year</name>
      <header>年度</header>
      <type>java.lang.Integer</type>
      <width>50</width>
    </column>
    <column>
      <name>ownersname</name>
      <header>户主姓名</header>
      <type>java.lang.String</type>
      <width>120</width>
    </column>
  </columns>
</excel>

Чтение xls с помощью конфигурации xml:

@Test
public void testMap() {
    try {
        List list = EasyXls.xls2List(
                Xls2ListTest.class.getResource("/ChargesMap.xml").getPath(),
                new File(Xls2ListTest.class.getResource("2.xls").getPath()));
        System.out.println(list);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Создание конфигурации Config с помощью кода Java и чтение xls:

@Test
public void testConfig() {
    try {
        //创建一个配置
        ExcelConfig config = new ExcelConfig.Builder(Charges.class)
                .sheetNum(0)
                .startRow(1)
                .key("name")
                .addColumn("year", "communityid", "roomno", "ownersid", "ownersname", "property").build();
        List list = EasyXls.xls2List(config, Xls2ListTest.class.getResourceAsStream("2.xls"));
        for (int i = 0; i < list.size(); i++) {
            System.out.println(((Charges) list.get(i)).getOwnersname());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Здесь обработка столбцов очень проста, достаточно просто сопоставить столбцы excel со столбцами column один к одному.

Чтение с помощью конфигурации xml и запись в новый файл xls с использованием конфигурации:

@Test
public void testMap2() {
    InputStream is = Xls2ListTest.class.getResourceAsStream("2.xls");
    try {
        String xmlPath = Xls2ListTest.class.getResource("/ChargesMap.xml").getPath();
        List list = EasyXls.xls2List(xmlPath, is);

        Map map = new HashMap();
        map.put("year", 2013);
        map.put("ownersname", "测试户主");
        list.add(map);

        EasyXls.list2Xls(list, xmlPath, "d:/", "testMap.xls");

        ExcelConfig config = new ExcelConfig.Builder(Charges.class)
                .sheetNum(0)
                .startRow(1)
                .separater(",")
                .key("name")
                .addColumn("year,年度", "communityid,小区ID",
                        "roomno,房号", "ownersid,户主ID",
                        "ownersname,户主姓名", "property,物业费").build();
        EasyXls.list2Xls(config, list, "d:/", "testMap2.xls");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
``` Здесь для удобства вызова сначала используется метод `.separater(",")` для установки разделителя (по умолчанию  запятая), а затем в методе `addColumn` используются значения, подобные `"year,год,200"`.

Этот способ присваивания поддерживает максимум 4 параметра, которые соответствуют name, header, width и type, например:  

>`year,год,200,java.lang.Integer`  

При использовании POJO-класса не нужно указывать тип, а при использовании Map можно использовать type для указания типа.

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

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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