@Override public ColumnNamingSession startColumnNamingSession() { final ColumnNamingSession intrinsicSession = intrinsicStrategy.startColumnNamingSession(); final ColumnNamingSession nonIntrinsicSession = nonIntrinsicStrategy.startColumnNamingSession(); return new ColumnNamingSession() { @Override public String getNextColumnName(ColumnNamingContext ctx) { final String intrinsicColumnName = ctx.getIntrinsicColumnName(); if (intrinsicColumnName == null || intrinsicColumnName.isEmpty()) { return nonIntrinsicSession.getNextColumnName(ctx); } return intrinsicSession.getNextColumnName(ctx); } @Override public void close() { intrinsicSession.close(); nonIntrinsicSession.close(); } }; } }
@Override public ColumnNamingSession startColumnNamingSession() { final ColumnNamingSession intrinsicSession = intrinsicStrategy.startColumnNamingSession(); final ColumnNamingSession nonIntrinsicSession = nonIntrinsicStrategy.startColumnNamingSession(); return new ColumnNamingSession() { @Override public String getNextColumnName(ColumnNamingContext ctx) { final String intrinsicColumnName = ctx.getIntrinsicColumnName(); if (intrinsicColumnName == null || intrinsicColumnName.isEmpty()) { return nonIntrinsicSession.getNextColumnName(ctx); } return intrinsicSession.getNextColumnName(ctx); } @Override public void close() { intrinsicSession.close(); nonIntrinsicSession.close(); } }; } }
private List<Column> buildColumns(final List<String> columnNames) { if (columnNames == null) { return new ArrayList<>(); } final CsvConfiguration configuration = _schema.getDataContext().getConfiguration(); final int columnNameLineNumber = configuration.getColumnNameLineNumber(); final boolean nullable = !configuration.isFailOnInconsistentRowLength(); final ColumnNamingStrategy columnNamingStrategy = configuration.getColumnNamingStrategy(); List<Column> columns = new ArrayList<>(); try (final ColumnNamingSession namingSession = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < columnNames.size(); i++) { final String intrinsicColumnName = columnNameLineNumber == CsvConfiguration.NO_COLUMN_NAME_LINE ? null : columnNames.get(i); final String columnName = namingSession.getNextColumnName(new ColumnNamingContextImpl(this, intrinsicColumnName, i)); final Column column = new MutableColumn(columnName, ColumnType.STRING, this, i, null, null, nullable, null, false, null); columns.add(column); } } return columns; }
private List<Column> buildColumns(final List<String> columnNames) { if (columnNames == null) { return new ArrayList<>(); } final CsvConfiguration configuration = _schema.getDataContext().getConfiguration(); final int columnNameLineNumber = configuration.getColumnNameLineNumber(); final boolean nullable = !configuration.isFailOnInconsistentRowLength(); final ColumnNamingStrategy columnNamingStrategy = configuration.getColumnNamingStrategy(); List<Column> columns = new ArrayList<>(); try (final ColumnNamingSession namingSession = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < columnNames.size(); i++) { final String intrinsicColumnName = columnNameLineNumber == CsvConfiguration.NO_COLUMN_NAME_LINE ? null : columnNames.get(i); final String columnName = namingSession.getNextColumnName(new ColumnNamingContextImpl(this, intrinsicColumnName, i)); final Column column = new MutableColumn(columnName, ColumnType.STRING, this, i, null, null, nullable, null, false, null); columns.add(column); } } return columns; }
@Override public boolean row(int rowNumber, List<String> values, List<Style> styles) { final int columnNameLineNumber = _configuration.getColumnNameLineNumber(); final boolean hasColumnNameLine = columnNameLineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE; if (hasColumnNameLine) { final int zeroBasedLineNumber = columnNameLineNumber - 1; if (rowNumber < zeroBasedLineNumber) { // jump to read the next line return true; } } final ColumnNamingStrategy columnNamingStrategy = _configuration.getColumnNamingStrategy(); try (ColumnNamingSession session = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < values.size(); i++) { final String intrinsicColumnName = hasColumnNameLine ? values.get(i) : null; final String columnName = session.getNextColumnName(new ColumnNamingContextImpl(table, intrinsicColumnName, i)); if (!(_configuration.isSkipEmptyColumns() && values.get(i) == null)) { table.addColumn(new MutableColumn(columnName, ColumnType.STRING, table, i, true)); } } } // now we're done, no more reading return false; } };
@Override public boolean row(int rowNumber, List<String> values, List<Style> styles) { final int columnNameLineNumber = _configuration.getColumnNameLineNumber(); final boolean hasColumnNameLine = columnNameLineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE; if (hasColumnNameLine) { final int zeroBasedLineNumber = columnNameLineNumber - 1; if (rowNumber < zeroBasedLineNumber) { // jump to read the next line return true; } } final ColumnNamingStrategy columnNamingStrategy = _configuration.getColumnNamingStrategy(); try (ColumnNamingSession session = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < values.size(); i++) { final String intrinsicColumnName = hasColumnNameLine ? values.get(i) : null; final String columnName = session.getNextColumnName(new ColumnNamingContextImpl(table, intrinsicColumnName, i)); if (!(_configuration.isSkipEmptyColumns() && values.get(i) == null)) { table.addColumn(new MutableColumn(columnName, ColumnType.STRING, table, i, true)); } } } // now we're done, no more reading return false; } };
/** * Builds columns based on row/cell values. * * @param table * @param wb * @param row */ private void createColumns(MutableTable table, Workbook wb, Row row) { if (row == null) { logger.warn("Cannot create columns based on null row!"); return; } final short rowLength = row.getLastCellNum(); final int offset = getColumnOffset(row); // build columns based on cell values. try (final ColumnNamingSession columnNamingSession = _configuration.getColumnNamingStrategy() .startColumnNamingSession()) { for (int j = offset; j < rowLength; j++) { final Cell cell = row.getCell(j); final String intrinsicColumnName = ExcelUtils.getCellValue(wb, cell); final ColumnNamingContext columnNamingContext = new ColumnNamingContextImpl(table, intrinsicColumnName, j); final String columnName = columnNamingSession.getNextColumnName(columnNamingContext); final Column column = new MutableColumn(columnName, ColumnType.VARCHAR, table, j, true); table.addColumn(column); } } }
/** * Builds columns based on row/cell values. * * @param table * @param wb * @param row */ private void createColumns(MutableTable table, Workbook wb, Row row) { if (row == null) { logger.warn("Cannot create columns based on null row!"); return; } final short rowLength = row.getLastCellNum(); final int offset = getColumnOffset(row); // build columns based on cell values. try (final ColumnNamingSession columnNamingSession = _configuration.getColumnNamingStrategy() .startColumnNamingSession()) { for (int j = offset; j < rowLength; j++) { final Cell cell = row.getCell(j); final String intrinsicColumnName = ExcelUtils.getCellValue(wb, cell); final ColumnNamingContext columnNamingContext = new ColumnNamingContextImpl(table, intrinsicColumnName, j); final String columnName = columnNamingSession.getNextColumnName(columnNamingContext); final Column column = new MutableColumn(columnName, ColumnType.VARCHAR, table, j, true); table.addColumn(column); } } }
try (final ColumnNamingSession columnNamingSession = columnNamingStrategy.startColumnNamingSession()) { final int offset = getColumnOffset(row); for (int i = 0; i < offset; i++) {
try (final ColumnNamingSession columnNamingSession = columnNamingStrategy.startColumnNamingSession()) { final int offset = getColumnOffset(row); for (int i = 0; i < offset; i++) {
try (final ColumnNamingSession columnNamingSession = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < columnNames.length; i++) { final String intrinsicColumnName = hasColumnHeader ? columnNames[i] : null;
try (final ColumnNamingSession columnNamingSession = columnNamingStrategy.startColumnNamingSession()) { for (int i = 0; i < columnNames.length; i++) { final String intrinsicColumnName = hasColumnHeader ? columnNames[i] : null;