Ejemplo n.º 1
0
        protected void SetCellByField(DataRow current
                                      , DataRow before
                                      , DataRow next
                                      , int cellIndex
                                      , string columnName
                                      , bool isDuplicateHide   = false
                                      , ICustomFormula formula = null)
        {
            if (current.Table.Columns.Contains(columnName) == false)
            {
                return;
            }

            HSSFCell _cell;
            HSSFRow  _row;

            object _currentValue;
            object _beforeValue;

            _row          = this.GetCurrentRow();
            _cell         = this.GetCell(_row, cellIndex);
            _currentValue = current[columnName];

            if (_currentValue.Equals(DBNull.Value) == true)
            {
                return;
            }

            if (formula != null)
            {
                _currentValue = formula.GetValue(_currentValue);
            }

            this.SetCellValue(_cell, _currentValue.ToString());

            //與前筆資料相同時不顯示此筆資料
            if (isDuplicateHide == true)
            {
                if (before == null)
                {
                    return;
                }

                _beforeValue = before[columnName];

                if (_currentValue.Equals(_beforeValue) == true)
                {
                    _cell.SetCellValue(string.Empty);
                }
            }
        }
Ejemplo n.º 2
0
 protected void SetCell(HSSFRow row
                        , DataRow record
                        , DataRow recordBefore
                        , int index
                        , string columnName
                        , ICustomFormula formula)
 {
     this.SetCell(row
                  , record
                  , recordBefore
                  , index
                  , columnName
                  , false
                  , formula);
 }
Ejemplo n.º 3
0
        protected void SetCell(HSSFRow row
                               , DataRow record
                               , DataRow recordBefore
                               , int index
                               , string columnName
                               , bool isDuplicateHide   = false
                               , ICustomFormula formula = null)
        {
            HSSFCell _cell;
            object   _recordValue;
            object   _recordBeforeValue;

            _cell              = row.CreateCell(index) as HSSFCell;
            _recordValue       = record[columnName];
            _recordBeforeValue = recordBefore[columnName];

            if (Convert.IsDBNull(_recordValue) == true)
            {
                return;
            }

            if (formula != null)
            {
                _recordValue = formula.GetValue(_recordValue);
            }

            _cell.SetCellValue(_recordValue.ToString());


            //確認是否有隱藏重複資料
            if (isDuplicateHide == true)
            {
                if (Convert.IsDBNull(_recordValue) == false)
                {
                    if (_recordValue.Equals(_recordBeforeValue) == true)
                    {
                        _cell.SetCellValue(string.Empty);
                    }
                }
            }
        }