예제 #1
0
 /// <summary>
 /// 生成工作表的数据列读取器
 /// </summary>
 /// <param name="expression">读取工作表一行数据的表达式</param>
 /// <returns></returns>
 public IReadExcelColumnBuilder <T> For(Action <T, IExcelDataRow> expression)
 {
     currentColumn = new ReadExcelColumn <T>()
     {
         CustomDelegate = expression
     };
     this.columns.Add(currentColumn);
     return(this);
 }
예제 #2
0
 /// <summary>
 /// 生成工作表的数据列读取器
 /// </summary>
 /// <param name="expression">读取单元格数据的表达式</param>
 /// <param name="name">列标题名称</param>
 /// <returns></returns>
 public IReadExcelColumnBuilder <T> For(Action <T, string> expression, string name)
 {
     currentColumn = new ReadExcelColumn <T>()
     {
         ColumnName      = name,
         CustomEvaluater = expression,
     };
     this.columns.Add(currentColumn);
     return(this);
 }
예제 #3
0
 /// <summary>
 /// 生成工作表的数据列读取器
 /// </summary>
 /// <param name="expression">读取单元格数据的表达式</param>
 /// <param name="index">按数据列索引读取</param>
 /// <returns></returns>
 public IReadExcelColumnBuilder <T> For(Action <T, string> expression, int index)
 {
     currentColumn = new ReadExcelColumn <T>()
     {
         ColumnIndex     = index,
         CustomEvaluater = expression,
     };
     this.columns.Add(currentColumn);
     return(this);
 }
예제 #4
0
        /// <summary>
        /// 处理一列信息
        /// </summary>
        private ProcessCellDataException ProcessCellData(T item, DataRowWrapper dataWrapper, ReadExcelColumn <T> column)
        {
            ProcessCellDataException error = null;

            if (column.CustomDelegate != null)
            {//自定义获取信息,优先级最高
                error = WrapperException(String.Format("读取第 [{0}] 行信息错误。", dataWrapper.RowIndex + 1), () => column.CustomDelegate(item, dataWrapper));
            }
            else
            {
                String data = null;
                if (!String.IsNullOrEmpty(column.ColumnName))
                {//信息列名称获取信息优先级大于信息索引
                    error = WrapperException(String.Format("读取第 [{0}] 行,[{1}] 列单元格信息错误。", dataWrapper.RowIndex + 1, column.ColumnName),
                                             () => data = dataWrapper[column.ColumnName]);
                    if (null == error)
                    {//转换信息
                        error = WrapperException(String.Format("读取第 [{0}] 行,[{1}] 列单元格信息错误。", dataWrapper.RowIndex + 1, column.ColumnName),
                                                 () => column.CustomEvaluater(item, data));
                    }
                }
                else
                {
                    error = WrapperException(String.Format("读取第 [{0}] 行,第 [{1}] 列单元格信息错误。", dataWrapper.RowIndex + 1, column.ColumnIndex + 1),
                                             () => data = dataWrapper[column.ColumnIndex]);
                    if (null == error)
                    {//转换信息
                        error = WrapperException(String.Format("读取第 [{0}] 行,第 [{1}] 列单元格信息错误。", dataWrapper.RowIndex + 1, column.ColumnIndex + 1),
                                                 () => column.CustomEvaluater(item, data));
                    }
                }
            }

            return(error);
        }