Configuring drush alias for rsync with exclude paths and file patterns
Your subsequent 'exclude' items in the PHP array are overwriting their previous ones, so the example above only has --exclude=xls

drush help rsync does not explicitly document the syntax for --exclude but I assume that it's similar to --explude-path and that would mean you should do something like this:

'rsync' =&gt; array (
  'mode' =&gt; 'rlptDz',
  'exclude-paths' =&gt; 'css:imagecache:ctools:js:tmp::xmlsitemap',
  'exclude' =&gt; '*.tmp:*.doc*:*.zip:*.xls*',
),


EDIT: looking into the example.aliases.drushrc.php there is this tip included:

// if you need multiple exludes, use an rsync exclude file
'exclude-from' =&gt; "'/etc/rsync/exclude.rules'",


That's maybe the best way to go.