package org.dayatang.excel; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 代表Excel中一块Range的数据。 * @author yyang (<a href="mailto:gdyangyu@gmail.com">gdyangyu@gmail.com</a>) */ public class ExcelRangeData { private List<Object[]> data = new ArrayList<Object[]>(); private Version version; private boolean isDate1904; /** * 初始化 * @param data 数据 * @param version 版本(xls或xlsx) * @param isDate1904 是否基于1904年的日期系统 */ public ExcelRangeData(List<Object[]> data, Version version, boolean isDate1904) { super(); this.data = data; this.version = version; this.isDate1904 = isDate1904; } /** * 获取行数 * @return 数据行数 */ public int getRowCount() { return data.size(); } /** * 获取列数 * @return 数据列数 */ public int getColumnCount() { return data.isEmpty() ? 0 : data.get(0).length; } /** * 获取指定行、指定列的数据,以double的形式表示 * @param row 行号 * @param column 列号 * @return */ public Double getDouble(int row, int column) { return ExcelUtils.getDouble(data.get(row)[column]); } /** * 获取指定行、指定列的数据,以int的形式表示 * @param row 行号 * @param column 列号 * @return */ public Integer getInt(int row, int column) { return ExcelUtils.getInt(data.get(row)[column]); } /** * 获取指定行、指定列的数据,以long的形式表示 * @param row 行号 * @param column 列号 * @return */ public Long getLong(int row, int column) { return ExcelUtils.getLong(data.get(row)[column]); } /** * 获取指定行、指定列的数据,以boolean的形式表示 * @param row 行号 * @param column 列号 * @return */ public Boolean getBoolean(int row, int column) { return ExcelUtils.getBoolean(data.get(row)[column]); } /** * 获取指定行、指定列的数据,以字符串的形式表示 * @param row 行号 * @param column 列号 * @return */ public String getString(int row, int column) { return ExcelUtils.getString(data.get(row)[column]); } /** * 获取指定行、指定列的数据,以date的形式表示 * @param row 行号 * @param column 列号 * @return */ public Date getDate(int row, int column) { return ExcelUtils.getDate(data.get(row)[column], version, isDate1904); } /** * 获取数据 * @return 数据 */ public List<Object[]> getData() { return data; } }