Search code examples
c#.netwinformspdfxlsx

Excel to PDF without office


I need to generate PDF reports in a windows application I'm working on, and I do this by exporting an .xlsx file to pdf. I'm currently using interop for this, however:

  • I need to do this without requiring the users to buy software, so no microsoft office excel.
  • I also can't use any heavy dependencies (like open/libre office).
  • the application is in .NET winforms and is local (not dependent on an internet connection).

Things I tried:

  • I have tried iTextSharp but this gets really complicated with things like overflowing columns.
  • Tried closedXML but there couldn't convert to PDF.
  • (As mentioned earlier) Tried interop but couldn't find a way to make it independent on office.

Help would be appreciated, thank you in advance :)

edits:

iTextSharp

I would use it except I need to export a big DataTable that has a variable number of columns (up to 30 columns), and if there are many columns then It gets really complicated to handle that column overflow, which was easy in interop.

Aspose

Appears to be too expensive, since I work for a small company that is currently very limited in resources.


Solution

  • Instead of using Excel to layout your reports, use HTML. It is much more flexible, and pretty much the easiest tool for laying out data for end users. Then look up one of the many HTML to PDF solutions (wkhtmltopdf, installing a print to pdf driver, etc.)