All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.featherfly.data.office.word.WordDataSet Maven / Gradle / Ivy


package cn.featherfly.data.office.word;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

import cn.featherfly.common.lang.Lang;
import cn.featherfly.data.core.DataSet;

/**
 * 

* Word数据集 *

* * @param 数据记录 * @author 钟冀 */ public class WordDataSet implements DataSet { private List records = new ArrayList<>(); private int index = -1; private XWPFTable table; private WordDataMapper mapper; /** * @param table XWPFTable * @param index index * @param mapper ExcelDataMapper */ public WordDataSet(XWPFTable table, int index, WordDataMapper mapper) { this.index = index; this.table = table; this.mapper = mapper; int rowNum = 1; for (XWPFTableRow row : table.getRows()) { records.add(mapper.mapRecord(row, rowNum)); rowNum++; } } /** * {@inheritDoc} */ @Override public Collection getDataRecords() { return records; } /** * {@inheritDoc} */ @Override public R getDataRecord(int index) { return records.get(index); } /** * {@inheritDoc} */ @Override public int getDataRecordsNumber() { return records.size(); } /** * {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public > D addRecord(R record) { int rowNum = table.getNumberOfRows(); rowNum++; XWPFTableRow row = table.createRow(); mapper.fillData(row, record, rowNum); records.add(record); return (D) this; } /** * {@inheritDoc} */ @Override @SuppressWarnings("unchecked") public > D addRecord(R... records) { if (Lang.isNotEmpty(records)) { for (R record : records) { addRecord(record); } } return (D) this; } /** * {@inheritDoc} */ @Override @SuppressWarnings("unchecked") public > D addRecords(Collection records) { if (Lang.isNotEmpty(records)) { for (R record : records) { addRecord(record); } } return (D) this; } /** * {@inheritDoc} */ @Override public int getIndex() { return index; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy