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); } } }
protected void SetCell(HSSFRow row , DataRow record , DataRow recordBefore , int index , string columnName , ICustomFormula formula) { this.SetCell(row , record , recordBefore , index , columnName , false , formula); }
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); } } } }