Example #1
0
        /// <summary>
        /// 从某个单元格中复制值
        /// </summary>
        /// <param name="row"></param>
        /// <param name="cellName"></param>
        /// <param name="sourceRow"></param>
        /// <param name="sourceCellName"></param>
        public static void ValueCopy(this IRow row, string cellName, IRow sourceRow, string sourceCellName)
        {
            // 注意:1、只支持基于数字的公式 2、公式计算出数字值 3、空白当做数字读取
            var sourceCell = sourceRow.GetCellByName(sourceCellName);
            var targetCell = row.GetCellByName(cellName);

            switch (sourceCell.CellType)
            {
            case CellType.Numeric:
                targetCell.SetCellValue(sourceCell.NumericCellValue);
                break;

            case CellType.String:
                targetCell.SetCellValue(sourceCell.StringCellValue);
                break;

            case CellType.Formula:
                targetCell.SetCellValue(sourceCell.NumericCellValue);
                break;

            case CellType.Blank:
                targetCell.SetCellValue(sourceCell.NumericCellValue);
                break;

            default:
                throw new NotSupportedException(String.Format("{0}{1} 不是数字、字符串或基于数字的公式", sourceCellName, sourceRow.RowNum + 1));
            }
        }
Example #2
0
        /// <summary>
        /// 从某个单元格中复制字符串
        /// </summary>
        /// <param name="row"></param>
        /// <param name="cellName"></param>
        /// <param name="sourceRow"></param>
        /// <param name="sourceCellName"></param>
        public static void StringValueCopy(this IRow row, string cellName, IRow sourceRow, string sourceCellName)
        {
            var stringValue = sourceRow.GetCellByName(sourceCellName).StringCellValue;

            row.GetCellByName(cellName).SetCellValue(stringValue);
        }
Example #3
0
        /// <summary>
        /// 从某个单元格中复制数字
        /// </summary>
        /// <param name="row"></param>
        /// <param name="cellName"></param>
        /// <param name="sourceRow"></param>
        /// <param name="sourceCellName"></param>
        public static void NumericValueCopy(this IRow row, string cellName, IRow sourceRow, string sourceCellName)
        {
            var numericValue = sourceRow.GetCellByName(sourceCellName).NumericCellValue;

            row.GetCellByName(cellName).SetCellValue(numericValue);
        }