protected function _setPartColumn(array $contents, $column_index, $default, $part, $action = 'replace')
    {
        if (property_exists($this, $part)) {
            if (is_null($column_index) || $column_index>$this->getColumnSize()) {
                $column_index = $this->getColumnSize();
            } else {
                $column_index--;
            }
            foreach ($this->{$part} as $i=>$line) {
                $value = isset($contents[$i]) ? $contents[$i] : $default;
                if ($column_index<$this->getColumnSize() && 'insert'===$action) {
                    array_splice($line, $column_index, 0, array($value));
                    $this->{$part}[$i] = $line;
                } else {
                    $line[$column_index] = $value;
                    $this->{$part}[$i] = $line;
                }
            }
            $this->_repadAllLines();
        } elseif (!in_array($part, self::$_table_parts)) {
            throw new InvalidArgumentException(
                sprintf('Unknown table part "%s"!', $part)
            );
        }
    }