Excel Exports
Export your data to clean, professionally formatted Excel files. List pages — Transactions, Customers, Vendors, and Purchase Orders — stream a server-rendered .xlsx with bold headers, a frozen top row, auto-filter, auto-sized columns, $ currency formatting, and negative amounts highlighted in red. Financial reports (Income Statement, Balance Sheet, Cash Flow, and more) have their own export button on each report page that builds a multi-sheet workbook in the browser. Every export respects the filters currently applied and is written to the audit log.
Key capabilities
- Transaction export honoring every active filter: date range, bank-account ledger, category (opposing) ledger, source account, tags, search, amount direction, uncategorized-only, missing-counterparty, and review status
- Customer, vendor, and purchase-order list exports (Excel; purchase orders also export to CSV)
- Per-report Excel buttons on Income Statement, Balance Sheet, Cash Flow, Managerial P&L, Vendor Spend, Cash Flow Forecast, and Budget Projection
- Bold white-on-green header row, frozen at the top so it stays visible while scrolling
- Auto-filter enabled across the full data range, plus auto-sized columns (min 12, max 50 characters wide)
- Real Excel currency cells (
$#,##0.00), not text, with right-aligned numbers - Negative amounts highlighted in red via conditional formatting
- Proper Excel date cells, landscape print layout fit to page width, and a "Generated by DayZero" footer with page numbers
- Dropdown validation on Status (Posted / Pending / Deleted) and Reconciled (Yes / No) columns, plus a named
ExportDatarange - Formula-injection protection: every cell value is escaped so a leading
=,+,-, or@can't execute as a formula - Color-coded sheet tabs per export type, and descriptive filenames (
<Type> Export - <Business> - <YYYY-MM-DD>.xlsx) - Every export records an audit-log entry capturing the format, filters, and row count
How it works
For list exports, DayZero pulls the filtered records (up to a generous per-export cap), escapes each cell against formula injection, then applies the shared formatting pass before streaming the file to your browser. Report exports assemble each report's sections into one or more worksheets directly.
flowchart TD
click["Click Excel export"] --> fetch["Fetch filtered records (capped)"]
fetch --> conv["Cents to dollars + escape cells"]
conv --> write["Write rows (openpyxl)"]
write --> fmt["Format: headers, currency, dates, filters"]
fmt --> audit["Write audit-log entry"]
audit --> dl["Stream .xlsx download"]How to use it
- Open the page with the data you want: Transactions, Customers, Vendors, or Purchase Orders (under Inventory).
- Apply any filters — date range, bank account, status, search, etc. The export mirrors exactly what the filtered table shows.
- Click the Excel export (download) icon in the page header. Purchase Orders also offers Export Excel alongside a CSV option.
- The file downloads immediately as a formatted
.xlsx, named with the business and today's date. - For financial reports, open the report page (e.g. Income Statement) and click its own Excel export button.
Pro tips
- Filter before exporting — the transaction export respects all active filters, so you get exactly the slice you need with no spreadsheet cleanup afterward.
- The frozen header row and auto-filter mean you can sort and slice large exports immediately in Excel or Google Sheets.
- Negative amounts come pre-flagged in red, making refunds, credits, and adjustments easy to spot at a glance.
- Numbers export as real currency/date cells, so SUM and date math work without re-typing or reformatting.
- For very large datasets, list exports cap at a high limit (10,000 transactions; 5,000 customers/vendors/orders) — narrow the date range or filters for anything bigger.
- Need a plain data feed instead of formatting? Use the Purchase Orders CSV export.
In-depth guide
Available exports and columns
| Export | Columns |
|---|---|
| Transactions | ID, Date, Counterparty, Description, Amount, Ledger ID, Ledger Name, Category, Status, Review Status, Reconciled |
| Customers | ID, Name, Email, Phone, Address, Created Date, Updated Date |
| Vendors | ID, Name, Email, Phone, Category, Status, Credit Limit, Address, Website, Tax ID, Notes, Created Date, Updated Date |
| Purchase Orders | PO Number, Name, Status, Vendor, Total, Balance, Line Items, Description, Expected Delivery Date, Expected to Pay On, Payment Terms, Created Date, Updated Date |
Purchase Orders also export to CSV alongside Excel. A couple of details on the Transactions export specifically:
- Filters carry over — anything you can filter on screen carries into the file: date range, bank-account ledger, category (opposing) ledger, source account, tags, search, amount direction, uncategorized-only, missing-counterparty, and review status, plus sort.
- Category column — the joined names of the transaction's opposing (categorization) ledgers, or "Uncategorized".
Formatting applied to list exports
A shared formatting pass styles every list export the same way:
| Feature | Behavior |
|---|---|
| Header row | Bold white text on a green fill, centered, bordered |
| Freeze panes | Top row frozen (A2) so headers stay visible |
| Auto-filter | Enabled across the full A1–last-cell range |
| Column width | Auto-sized to content, clamped between 12 and 50 characters |
| Currency cells | "$"#,##0.00 number format, right-aligned, on amount columns |
| Negatives | Conditional formatting: red font on a light-red fill for values < 0 |
| Dates | Proper Excel date number format on date columns |
| Print setup | Landscape, fit-to-width, repeating header row, footer with page numbers and "Generated by DayZero" |
| Validation | Dropdowns on Status (Posted/Pending/Deleted) and Reconciled (Yes/No) |
| Named range | The data block is exposed as ExportData |
| Tab color | Per type — transactions green, customers blue, vendors red, orders orange |
Amounts, dates, and safety
- Currency — monetary values are written as numeric currency cells; the
$formatting is applied by Excel, not baked into a string. - Dates — written as real date values for clean display.
- Formula-injection escaping — before writing, every cell is escaped, so a value beginning with
=,+,-, or@is neutralized and can't execute when the file is opened.
Financial report exports
Report pages assemble their workbooks directly:
- Income Statement — lays out each section (Operating Revenue, Cost of Goods Sold, Operating Expenses, Other Income/Expense) as a block with a "Ledger Name / Total / per-period" header, a Sum row per section, and computed subtotals for Gross Profit, Operating Income, and Net Income across the selected periods.
- Other reports — Balance Sheet, Cash Flow (including monthly and forecast variants), Managerial P&L, Vendor Spend, and the multi-sheet Budget Projection each have their own export tailored to that report's structure.
Audit trail
Every export — Excel or CSV — writes a row to the audit log capturing:
- The export action
- The entity type
- The number of records exported
- The filters that were in effect
This gives firms a record of who pulled which data and when, useful for close reviews and data-handling controls.
Start free and get board-ready spreadsheets in one click.