Unlike Excel you cannot simply dump data into an access sheet as if it were a blank slate. You should create a table with all the columns you need in Access and use
DBI and
DBD::ODBC to insert the data. this method is far better and easier to use than the OLE interface. You can install those modules with the
ppm utility on a windows system.
update:I forgot to mention Spreadsheet::WriteExcel is a great way to do the excel-based version of your report. it has support for all of excels formatting options