*/
	public void insertCols( int first, int count )
	{

		ReferenceTracker.updateReferences( first + 1,
		                                   count,
		                                   this,
		                                   false );    //shift or expand/contract ALL affected references including named ranges

		// shift the existing columns to the right to make room
		for( int colIdx = getRealMaxCol(); colIdx >= first; colIdx-- )
		{
			shiftCol( colIdx, count );
		}

		// update the new colinfos to include the formatting and the width of the inserted col
		Colinfo movedCol = getColInfo( first + count );
		if( movedCol != null )
		{
			for( int i = 0; i < count; i++ )
			{
				Colinfo newcol = getColInfo( first + i );
				if( newcol == null )
				{
					addColinfo( first + i, first + i, movedCol.getColWidth(), movedCol.getIxfe(), movedCol.getGrbit() );
				}
				else
				{
					newcol.setGrbit( movedCol.getGrbit() );
					newcol.setColWidth( movedCol.getColWidth() );
					newcol.setIxfe( movedCol.getIxfe() );
				}
			}
		}

		// ensure the sheet bounds are accurate
		dimensions.setColLast( getRealMaxCol() );
	}