[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"topic:report-layouts":3},[4,14,20,26,31,39,45,53,58,64,69,75,81,86,91,97,102,107,112,117,122,128,133,138,143,148,153,158,163,169,174,179,184,189,194,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,330,335,340,345,350,356,361,366,372,377,382,387,392,397,402,407,412,417,422,428,434,439,444,449,454,459,464,469,475,480,485,490,495,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,601,606,612,617,622,627,633,638,643,648,653,658],{"path":5,"title":6,"description":7,"type":8,"topics":9,"kind":13},"\u002Fadvanced-data-transformation-and-cleaning\u002Fapplying-conditional-formatting-with-openpyxl\u002Fhighlight-top-and-bottom-values-with-openpyxl","Highlight Top and Bottom Values in Excel with openpyxl","Mark the top three sales, the bottom 10%, everything above average, or the best rep in each region with conditional formatting written from Python. Covers the top10 and aboveAverage rules, how ties behave, highlighting whole rows, top-N per group with COUNTIFS, and checking the result without Excel.","how-to",[10,11,12],"conditional-formatting","openpyxl","report-layouts",null,{"path":15,"title":16,"description":17,"type":8,"topics":18,"kind":13},"\u002Fadvanced-data-transformation-and-cleaning\u002Fvalidating-excel-data-with-python\u002Fbuild-a-data-quality-scorecard-for-an-excel-file","Build a Data Quality Scorecard for an Excel File","Score an incoming Excel file on data quality with pandas, column by column: completeness, validity against a type, pattern or range, uniqueness for key columns, consistency with an allowed list and freshness of dates — declared once in a small rules table, combined into a score per column and for the file, compared with last month's file, and written as a colour-coded scorecard with sample failing values.",[19,12],"data-validation",{"path":21,"title":22,"description":23,"type":8,"topics":24,"kind":13},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-dates-and-times-in-excel-data\u002Fbuild-a-date-table-for-excel-reports-with-pandas","Build a Date Table for Excel Reports with pandas","Generate a calendar table — one row per day with year, quarter, month, ISO week, weekday, fiscal year, public holidays and working-day numbers — and use it to fill days with no sales, report by fiscal period, find the last working day of each month, and write it as an Excel table that lookups, pivots and Power Pivot can use.",[25,12],"dates-and-times",{"path":27,"title":28,"description":29,"type":8,"topics":30,"kind":13},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-dates-and-times-in-excel-data\u002Fcreate-a-shift-calendar-with-rotating-patterns","Create a Shift Calendar with Rotating Patterns","Generate a shift rota for teams on a rotating pattern — such as four teams on a 2-2-3 day and night cycle — with pandas: store each team's pattern as a repeating sequence anchored to a start date, expand it to any date range, prove every day has exactly one team on days and one on nights, total hours per team per month, mark public holidays, and write a colour-coded calendar grid to Excel.",[25,12],{"path":32,"title":33,"description":34,"type":35,"topics":36,"kind":13},"\u002Fautomating-reporting-workflows","Automating Reporting Workflows with Python and Excel","Build an end-to-end Python reporting pipeline: ingest data, transform it with pandas, generate a styled Excel workbook, then schedule and email the result.","overview",[37,38,12],"scheduling","email-delivery",{"path":40,"title":41,"description":42,"type":8,"topics":43,"kind":13},"\u002Fautomating-reporting-workflows\u002Fautomating-excel-online-with-microsoft-graph\u002Fcopy-a-template-workbook-in-sharepoint-with-microsoft-graph","Copy a Template Workbook in SharePoint with Microsoft Graph","Create new Excel workbooks from a template that lives in SharePoint or OneDrive using Microsoft Graph from Python: find the template by path, start a server-side copy into a destination folder, poll the asynchronous monitor URL until the copy finishes, handle name clashes, then fill in the copy through the workbook API without downloading anything.",[44,12],"excel-online",{"path":46,"title":47,"description":48,"type":49,"topics":50,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports","Building Finance and Operations Reports in Excel with Python","The month-end pack, the aging report, the commission statement and the stock reorder list share one shape: exports in, reference data joined, a period chosen, numbers calculated, totals tied back to the source and exceptions surfaced first. This guide builds that shape once — a budget-versus-actual report from a ledger export — and shows how each finance and operations report reuses it.","guide",[12,51,52],"pivots-and-summaries","pandas",{"path":54,"title":55,"description":56,"type":8,"topics":57,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fallocate-shared-costs-across-departments","Allocate Shared Costs Across Departments with Python","Spread rent, IT, HR and finance costs over the departments that use them: choose a driver per cost pool, calculate shares, allocate with rounding that still adds up to the cent, compare the direct method with the step-down method for service departments, and write an allocation workbook with formulas finance can audit.",[12,51],{"path":59,"title":60,"description":61,"type":8,"topics":62,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-bank-reconciliation-report","Build a Bank Reconciliation Report with Python and Excel","Match a month of bank statement lines to the cash book: first on cheque numbers and invoice references, then on amount within a few days, one to one. List what is left — outstanding cheques, deposits in transit, bank charges and interest — flag old unmatched items, and prove the adjusted bank and book balances agree.",[12,63,52],"joins-and-lookups",{"path":65,"title":66,"description":67,"type":8,"topics":68,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-bill-of-materials-cost-rollup","Build a Bill of Materials Cost Rollup","Calculate the standard cost of every assembled product from a multi-level bill of materials in Excel: walk the parent–component tree recursively with quantities, add each assembly's own labour and overhead, detect loops and components with no cost, show where a part is used, and work out what a supplier price increase does to every finished product — all with pandas and plain Python.",[12,63],{"path":70,"title":71,"description":72,"type":8,"topics":73,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-break-even-analysis-in-excel-with-python","Build a Break-Even Analysis in Excel with Python","Build a live break-even workbook from Python: contribution margin, break-even units and revenue and margin of safety as Excel formulas driven by input cells, a multi-product break-even based on the sales mix, a price-by-cost sensitivity grid, and a cost-volume-profit chart, all checked against the same figures computed in pandas.",[12,74],"excel-formulas",{"path":76,"title":77,"description":78,"type":8,"topics":79,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-budget-vs-actual-variance-report","Build a Budget vs Actual Variance Report in Excel with Python","Turn monthly actuals and a budget into the variance report finance reviews every month: month and year-to-date side by side, revenue and cost sections with subtotals and a net line, variances as live formulas where positive means favourable, unfavourable lines in red and a comment column for the reviewer.",[12,74,80],"xlsxwriter",{"path":82,"title":83,"description":84,"type":8,"topics":85,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-capacity-planning-report","Build a Capacity Planning Report","Compare the work in the order book with the hours each work centre can actually deliver, week by week, with pandas: turn orders into required hours through a routing table, calculate available capacity from shifts, efficiency, holidays and planned maintenance, show utilisation as a heatmap, find overloaded weeks, and test whether pulling work forward into spare weeks clears the backlog.",[12,52],{"path":87,"title":88,"description":89,"type":8,"topics":90,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-cash-flow-forecast-report","Build a 13-Week Cash Flow Forecast Report in Excel with Python","Turn open receivables, payables and recurring commitments into a rolling 13-week cash forecast: expected receipt dates from each customer's payment history, weekly buckets, opening and closing balances, a minimum-cash warning, and an Excel report with live balance formulas and a chart.",[12,25],{"path":92,"title":93,"description":94,"type":8,"topics":95,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-cash-position-report-from-bank-statements","Build a Cash Position Report from Bank Statements","Produce a daily cash position across several banks and currencies from their statement exports with pandas: map each bank's own CSV layout to one standard, prove every statement adds up from opening to closing balance, convert to the reporting currency, compare each account with its minimum balance and overdraft limit, and write a one-page position with the largest movements of the day.",[12,96],"data-sources",{"path":98,"title":99,"description":100,"type":8,"topics":101,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-credit-control-dunning-letter-run","Build a Credit Control Dunning Letter Run","Run credit control reminders from an open receivables export with pandas: decide each customer's reminder level from their most overdue invoice and their letter history, leave out disputed invoices, payment plans and small balances, never escalate faster than the policy allows, produce a run workbook for review and a letter for each customer listing what they owe, and record what was sent.",[12,38],{"path":103,"title":104,"description":105,"type":8,"topics":106,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-customer-credit-limit-report","Build a Customer Credit Limit Report","Check every customer's exposure against their credit limit with pandas: add open invoices to orders accepted but not yet invoiced, measure utilisation of the limit, combine it with how overdue the account is, decide which accounts to put on hold, which to review and which to leave alone, show what headroom remains for new orders, and write a colour-coded Excel report for the credit team.",[12,10],{"path":108,"title":109,"description":110,"type":8,"topics":111,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-customer-profitability-report","Build a Customer Profitability Report","Find out which customers actually make money with pandas: start from revenue and product margin, then subtract the costs that differ by customer — discounts and rebates, delivery, the cost of handling many small orders and returns, and the cost of slow payment — build a profit waterfall for each customer and a whale curve for the portfolio, and write a ranked Excel report.",[12,51],{"path":113,"title":114,"description":115,"type":8,"topics":116,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-deferred-revenue-schedule","Build a Deferred Revenue Schedule","Spread prepaid subscription and contract revenue over the service period with pandas: daily pro-rata recognition for contracts that start mid-month, a contract-by-month schedule, the deferred revenue balance at each month end, the monthly journal, a check that invoiced equals recognised plus deferred, and the schedule written to Excel.",[12,25],{"path":118,"title":119,"description":120,"type":8,"topics":121,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-discount-leakage-report","Build a Discount Leakage Report","Find out how much margin is lost to discounts beyond policy with pandas: compare every invoice line's discount with the approved maximum for the customer tier and product group, value the excess, separate approved exceptions from unapproved ones, show who and which customers account for it, measure how widely discounts vary for the same product and tier, and write the findings to Excel.",[12,51],{"path":123,"title":124,"description":125,"type":8,"topics":126,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-fixed-asset-depreciation-schedule","Build a Fixed Asset Depreciation Schedule with Python","Turn a fixed asset register into a monthly depreciation schedule: straight-line and double-declining balance with the switch to straight line, a start-of-depreciation convention, disposals part way through the year, net book values, a cost and depreciation roll-forward by category, and a check against Excel's SLN and VDB functions.",[12,127],"formula-equivalents",{"path":129,"title":130,"description":131,"type":8,"topics":132,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-fleet-mileage-and-fuel-report","Build a Fleet Mileage and Fuel Report","Turn a fuel card export into a fleet report with pandas: distance driven from odometer readings at each fill-up, fuel economy per vehicle in litres per 100 km and miles per gallon, cost per kilometre, and the checks fleet managers rely on — odometers that go backwards, fills larger than the tank, the wrong fuel for the vehicle, and vehicles whose economy suddenly gets worse — written to a monthly Excel report.",[12,52],{"path":134,"title":135,"description":136,"type":8,"topics":137,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-foreign-exchange-revaluation-report","Build a Foreign Exchange Revaluation Report","Revalue open foreign-currency invoices and bank balances at the month-end rate with pandas: join each item to its booking rate and the closing rate, calculate the unrealised gain or loss per item and per currency, get the sign right for receivables, payables and cash, produce the revaluation journal and its reversal, and write a report that reconciles to the ledger.",[12,63],{"path":139,"title":140,"description":141,"type":8,"topics":142,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-headcount-and-attrition-report","Build a Headcount and Attrition Report in Excel with Python","Turn an HR export of hire and leave dates into a monthly headcount and attrition report: point-in-time headcount at each month end, hires and leavers, attrition against average headcount, a rolling twelve-month rate, voluntary versus involuntary exits, first-year leavers, and a department breakdown in Excel with a chart.",[12,51],{"path":144,"title":145,"description":146,"type":8,"topics":147,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-lease-liability-schedule","Build a Lease Liability Schedule","Calculate a lease liability and right-of-use asset the way IFRS 16 does, with pandas: discount the payments at the incremental borrowing rate, unwind interest month by month with payments in advance, depreciate the asset straight line, split the liability into current and non-current portions, produce the month's journals and a maturity analysis, and check the opening liability against Excel's PV function.",[12,127],{"path":149,"title":150,"description":151,"type":8,"topics":152,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-loan-amortization-schedule-in-excel","Build a Loan Amortization Schedule in Excel with Python","Generate a month-by-month repayment schedule: the payment from the annuity formula, interest and principal split per period, cent rounding and a final payment that clears the balance exactly, overpayments that shorten the term, totals and payoff date, and a workbook with live PMT formulas checked against the Python result.",[12,127],{"path":154,"title":155,"description":156,"type":8,"topics":157,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-loan-covenant-compliance-report","Build a Loan Covenant Compliance Report","Test bank loan covenants every quarter with pandas: last-twelve-month EBITDA and interest from monthly accounts, net debt at the quarter end, leverage, interest cover and minimum liquidity against their limits, the headroom on each covenant expressed as how far EBITDA or cash could fall before a breach, a forward look using the forecast, and a compliance workbook that shows its formulas.",[12,74],{"path":159,"title":160,"description":161,"type":8,"topics":162,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-maintenance-schedule-in-excel","Build a Maintenance Schedule in Excel","Plan preventive maintenance for machines and vehicles with pandas: tasks due every so many days or every so many running hours, next due dates from the last service and the average daily usage, overdue jobs, every occurrence over the next twelve weeks, the weekly workload against technician hours, and a week-by-asset grid in Excel with the due jobs marked.",[12,25],{"path":164,"title":165,"description":166,"type":8,"topics":167,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-month-end-close-checklist-tracker","Build a Month-End Close Checklist Tracker","Turn a month-end close checklist into a tracker that updates itself: express each task's deadline as a working day relative to month end, convert those to real dates with a holiday calendar, read the team's status updates, flag overdue tasks and tasks blocked by unfinished dependencies, measure progress against plan day by day, and write a colour-coded Excel tracker.",[12,168],"reliable-jobs",{"path":170,"title":171,"description":172,"type":8,"topics":173,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-monthly-kpi-scorecard-with-targets","Build a Monthly KPI Scorecard with Targets","Build a one-page monthly KPI scorecard in Excel with pandas and XlsxWriter: KPI definitions with targets, direction and tolerance kept as data, red-amber-green status that knows when lower is better, variance against target and last month, year-to-date figures that sum or average correctly, six-month sparklines, and a status check that matches the colours.",[12,10],{"path":175,"title":176,"description":177,"type":8,"topics":178,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-price-volume-mix-analysis","Build a Price-Volume-Mix Analysis","Explain why revenue changed between two periods by splitting the change into price, volume and mix effects with pandas: per-product price and quantity, the standard PVM formulas, separate lines for new and discontinued products, a check that the effects add up exactly to the change, a breakdown by product, and an Excel report with a bridge table.",[12,51],{"path":180,"title":181,"description":182,"type":8,"topics":183,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-product-margin-report","Build a Product Margin Report","Work out what each product and customer really earns from sales lines with pandas: net revenue after discounts and returns, the standard cost in force on each sale date with merge_asof, freight allocated by weight, gross margin by product, category and customer, loss-making lines, a price-versus-cost explanation of margin change, and an Excel report with margin colour coding.",[12,51],{"path":185,"title":186,"description":187,"type":8,"topics":188,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-production-yield-and-scrap-report","Build a Production Yield and Scrap Report","Turn production order records into a yield and scrap report with pandas: yield and first-pass yield per line, product and shift, scrap units and scrap cost at standard cost, a Pareto of scrap reasons showing the few that matter, weekly trends against a target, and checks that the recorded quantities add up — written to an Excel report for the production meeting.",[12,52],{"path":190,"title":191,"description":192,"type":8,"topics":193,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-profit-and-loss-statement-from-a-general-ledger","Build a Profit and Loss Statement from a General Ledger","Turn a general ledger export into a monthly profit and loss statement in Excel: check the ledger balances, map account numbers to P&L lines with a chart of accounts, flip signs so revenue and costs read naturally, add gross, operating and net profit with margins, and write a workbook with collapsible account detail and live subtotal formulas.",[12,51],{"path":195,"title":196,"description":197,"type":8,"topics":198,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-project-budget-burn-report","Build a Project Budget Burn Report","Track how fast a project is spending its budget with pandas and openpyxl: combine timesheet costs and supplier invoices into weekly actuals, compare cumulative spend with a time-phased budget, add earned value with CPI and SPI from percent complete, forecast the cost at completion, flag workstreams at risk, and chart burn against plan in Excel.",[12,199],"charts-and-images",{"path":201,"title":202,"description":203,"type":8,"topics":204,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-purchase-order-tracking-report","Build a Purchase Order Tracking Report","Track every purchase order line from order to receipt to invoice with pandas: combine PO, goods-receipt and supplier-invoice exports, compute what is still to arrive and what has been received but not invoiced, flag late deliveries and invoices without receipts, value the open commitments, and write a status workbook buyers and accounts payable can both work from.",[12,25],{"path":206,"title":207,"description":208,"type":8,"topics":209,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-returns-analysis-report","Build a Returns Analysis Report","Analyse product returns properly with pandas: link each return to the sale it came from, calculate return rates by the month of sale rather than the month of return, compare products and channels, rank the reasons customers give, find the few products that cause most refund value, allow for returns still to come in recent months, and write the analysis to Excel.",[12,51],{"path":211,"title":212,"description":213,"type":8,"topics":214,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-sales-commission-report","Build a Sales Commission Report with Python and Excel","Calculate commissions from a month of closed deals: tiered rates applied the way the plan defines them — marginal like tax bands or on the whole amount once a tier is reached — clawbacks for cancelled deals, reps close to the next tier flagged, a summary for payroll and one statement sheet per rep showing the working.",[12,51,52],{"path":216,"title":217,"description":218,"type":8,"topics":219,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-sales-forecast-with-exponential-smoothing","Build a Sales Forecast with Exponential Smoothing","Forecast monthly sales from an Excel history with Holt-Winters exponential smoothing in Python: fit trend and seasonality with statsmodels, test the model on the months it did not see, compare it with a naive seasonal forecast, produce a twelve-month forecast with a range, and write the actuals, forecast and chart into a workbook the business can read.",[12,52],{"path":221,"title":222,"description":223,"type":8,"topics":224,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-sales-pipeline-report","Build a Sales Pipeline Report from a CRM Export","Turn a CRM opportunity export into a pipeline report: value and weighted value by stage, expected close by month, coverage of the remaining quota, deals past their close date or with no recent activity, and what changed since last week by comparing two snapshots — written to Excel for the Monday sales meeting.",[12,51],{"path":226,"title":227,"description":228,"type":8,"topics":229,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-staff-utilisation-report-from-timesheets","Build a Staff Utilisation Report from Timesheets","Measure how much of your team's available time goes on billable work with pandas: capacity from contracted hours minus holidays and leave, billable and non-billable hours from timesheet codes, utilisation against a target per role, a person-by-week heatmap with a colour scale, flags for missing timesheets and overload, and a formatted Excel report.",[12,51],{"path":231,"title":232,"description":233,"type":8,"topics":234,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-supplier-payment-run-proposal","Build a Supplier Payment Run Proposal","Turn an open accounts payable listing into a payment run proposal workbook with pandas and openpyxl: select invoices due before the next run, take early-payment discounts that are still available, net off credit notes per supplier, hold back disputed invoices and suppliers without bank details, fit the run to the cash available, and lay out proposal, detail, exclusions and approval sheets.",[12],{"path":236,"title":237,"description":238,"type":8,"topics":239,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-supplier-scorecard","Build a Supplier Scorecard","Score suppliers on delivery, quality and price from purchase order, receipt and inspection data with pandas: on-time and in-full delivery against the promised date, defect rates from goods inspection, price variance against the agreed price, a weighted overall score with clear thresholds, the trend against last quarter, and a colour-coded scorecard in Excel.",[12,10],{"path":241,"title":242,"description":243,"type":8,"topics":244,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-support-ticket-sla-report","Build a Support Ticket SLA Report","Measure a helpdesk against its service levels from a ticket export with pandas: SLA targets per priority, elapsed time in business hours that skips nights, weekends and holidays, first-response and resolution breaches, open tickets close to breaching, attainment by priority, team and week, and an Excel report with the at-risk list on top.",[12,25],{"path":246,"title":247,"description":248,"type":8,"topics":249,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-training-compliance-matrix","Build a Training Compliance Matrix","Build the people-by-course matrix that shows who is trained, who is due and who is out of date: work out which courses each person needs from their role, find their latest completion of each, apply each course's validity period to get an expiry date, classify every cell as valid, expiring, expired, missing or not required, and write a colour-coded Excel matrix with compliance by department and an action list.",[12,10],{"path":251,"title":252,"description":253,"type":8,"topics":254,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-trial-balance-from-a-general-ledger","Build a Trial Balance from a General Ledger","Produce a month-end trial balance in Excel from general ledger journal lines with pandas: opening balances plus period movements to closing balances for every account, debit and credit columns, a check that the ledger balances, flags for accounts on their wrong side and unmapped or suspense accounts, a prior-month comparison, and an openpyxl layout with live totals.",[12,51],{"path":256,"title":257,"description":258,"type":8,"topics":259,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-vat-return-summary-from-transactions","Build a VAT Return Summary from Transactions","Summarise a quarter's sales and purchase transactions into VAT return boxes with pandas: map tax codes to boxes through a table rather than code, handle standard, reduced, zero-rated, exempt, out-of-scope and reverse-charge lines, check every line's VAT against its rate, reconcile the boxes to the ledger, and write a summary workbook a reviewer can trace back to the transactions.",[12],{"path":261,"title":262,"description":263,"type":8,"topics":264,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-warehouse-pick-list-from-orders","Build a Warehouse Pick List from Orders","Turn the day's open orders into printable pick lists with pandas: allocate each order line to stock in specific bins, oldest stock first, record shortages instead of over-allocating, combine identical items across orders into one batch pick, sort the picks in a snake path through the aisles so the picker never doubles back, and write one sheet per picker with tick boxes and a put-to-order table.",[12,52],{"path":266,"title":267,"description":268,"type":8,"topics":269,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-warranty-claims-report","Build a Warranty Claims Report","Analyse warranty claims with pandas the way quality and finance teams need: claims per thousand units sold by product and by month of sale, how long after sale products fail, the failure modes that cost most, a production batch that fails more often than the rest, and an estimate of the claims still to come on units under warranty to support the warranty provision — written to an Excel report.",[12,52],{"path":271,"title":272,"description":273,"type":8,"topics":274,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-weekly-sales-report","Build a Weekly Sales Report in Excel with Python","Build the Monday-morning sales report from daily transactions: the week just ended against the previous week and the same ISO week last year, like-for-like stores only, year to date, an eight-week trend with sparklines, the biggest movers, and a one-page Excel layout with arrows and conditional formatting.",[12,51],{"path":276,"title":277,"description":278,"type":8,"topics":279,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-work-in-progress-report-for-unbilled-time","Build a Work in Progress Report for Unbilled Time","Value the time a professional services firm has worked but not yet billed with pandas: price timesheet hours at each person's rate, subtract what has been invoiced, cap fixed-fee projects at their remaining fee, age the unbilled value by when the work was done, flag old WIP and projects over budget, and write the month-end WIP report that finance and project managers use to decide what to bill.",[12,52],{"path":281,"title":282,"description":283,"type":8,"topics":284,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-accounts-receivable-aging-report","Build an Accounts Receivable Aging Report with Python","Turn an open-invoice export into the aging report credit control works from: balances bucketed into current, 1–30, 31–60, 61–90 and over 90 days past due as at the period end, one row per customer with totals, credit notes netted, customers over their credit limit flagged and the total tied back to the ledger.",[12,51,52],{"path":286,"title":287,"description":288,"type":8,"topics":289,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-accruals-and-prepayments-schedule","Build an Accruals and Prepayments Schedule","Automate two month-end schedules with pandas: a prepayments schedule that spreads invoices paid in advance across the months they cover by days, with the release for the month and the balance left on the balance sheet, and an accruals schedule from goods received but not yet invoiced that reverses the next month — both reconciled to the ledger and written to Excel with the journals.",[12,25],{"path":291,"title":292,"description":293,"type":8,"topics":294,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-aged-creditors-report","Build an Aged Creditors Report","Build an aged creditors (accounts payable ageing) report from an open payables export with pandas and openpyxl: age every open invoice, credit note and unallocated payment by due date into current, 1–30, 31–60, 61–90 and over-90-day buckets, show credits as negatives, mark disputed items, summarise by supplier, reconcile to the payables control account and highlight what is overdue.",[12,51],{"path":296,"title":297,"description":298,"type":8,"topics":299,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-employee-leave-balance-report","Build an Employee Leave Balance Report","Calculate annual leave balances for every employee from an HR list and a leave bookings export with pandas and NumPy: pro-rata entitlement for starters and part-timers, carried-over days with an expiry date, bookings counted in working days using each person's work pattern and the public holiday calendar, half days, bookings that span the year end, and a workbook that flags negative and unusually high balances.",[12],{"path":301,"title":302,"description":303,"type":8,"topics":304,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-energy-consumption-report-from-meter-readings","Build an Energy Consumption Report from Meter Readings","Turn irregular meter readings typed into a spreadsheet into monthly energy use per site with pandas: convert cumulative readings into consumption, handle a meter that was replaced and one that rolled over, spread each reading interval across calendar months by days, flag suspicious jumps, add cost from tariffs and emissions from a conversion factor, and write a site-by-month report to Excel.",[12,52],{"path":306,"title":307,"description":308,"type":8,"topics":309,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-intercompany-reconciliation","Build an Intercompany Reconciliation","Reconcile what one group company says another owes it against what the other company says it owes, with pandas: match intercompany transactions from both ledgers by reference, convert to a common currency, separate timing differences, exchange differences and genuine mismatches, check that balances eliminate on consolidation, and write a reconciliation both finance teams can work from.",[12,63],{"path":311,"title":312,"description":313,"type":8,"topics":314,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-inventory-reorder-report","Build an Inventory Reorder Report with Python and Excel","Decide what to order this week from a stock export and recent sales: average daily usage, reorder points from lead time and safety stock, stock already on order counted, order quantities rounded up to pack sizes and minimums, days of cover, stock-out risks flagged and a purchase list grouped by supplier.",[12,51,52],{"path":316,"title":317,"description":318,"type":8,"topics":319,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-inventory-turnover-and-days-on-hand-report","Build an Inventory Turnover and Days on Hand Report","Measure how hard stock is working with pandas: annual cost of goods sold against average inventory value for inventory turnover, days on hand from current stock and recent usage, slow-moving and dead stock classification, the cash tied up in each class, a category summary against targets, and an Excel report that shows where to act.",[12,51],{"path":321,"title":322,"description":323,"type":8,"topics":324,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-on-time-delivery-report","Build an On-Time Delivery (OTIF) Report with Python","Measure delivery performance from order and shipment exports: combine split shipments per order line, count lateness in working days with holidays, score on time, in full and OTIF, break results down by carrier, customer and week against a target, and write an Excel report with the late orders listed for follow-up.",[12,25],{"path":326,"title":327,"description":328,"type":8,"topics":329,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-an-overtime-report-from-shift-data","Build an Overtime Report from Shift Data","Calculate overtime from clock-in and clock-out records with pandas: shifts that cross midnight, unpaid breaks, hours rounded to the quarter hour, overtime above contracted weekly hours, premium rates for Sundays and bank holidays, overtime cost by department, and a check of average weekly hours against a 48-hour limit — written to an Excel report for payroll and managers.",[12,52],{"path":331,"title":332,"description":333,"type":8,"topics":334,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fcalculate-fifo-inventory-valuation-with-python","Calculate FIFO Inventory Valuation with Python","Value stock and cost of goods sold first in, first out from purchase and sales ledgers: consume the oldest cost layers per SKU with a deque, cost each sale across several layers, value the layers left at the period end, stop on sales that exceed stock, compare with weighted average cost, and write the results to Excel with a reconciliation.",[12,52],{"path":336,"title":337,"description":338,"type":8,"topics":339,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fcalculate-weighted-average-cost-inventory-valuation","Calculate Weighted Average Cost Inventory Valuation","Value stock and cost of goods sold on a moving (perpetual) weighted average cost basis from a stock movements export with pandas: recalculate the average on every receipt, cost issues and returns at the current average, spread late freight and cost corrections over the stock on hand, handle the last unit without leaving a stray penny, flag negative stock, reconcile, and write a stock card per item.",[12],{"path":341,"title":342,"description":343,"type":8,"topics":344,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fcheck-supplier-invoices-against-contract-prices","Check Supplier Invoices Against Contract Prices","Check every supplier invoice line before payment with pandas: look up the contract price in force on the invoice date, allow a small tolerance, compare the quantity invoiced with the quantity received, check the line arithmetic and the invoice total, value every overcharge, and produce a list of invoices to hold with the reason and the amount to query — written to Excel for the accounts payable team.",[12,52],{"path":346,"title":347,"description":348,"type":8,"topics":349,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fcompare-supplier-quotes-with-python","Compare Supplier Quotes with Python","Compare supplier quotes that arrive as differently laid-out Excel files: map each supplier's columns to one schema, convert currencies and pack sizes to a per-unit price, apply quantity price breaks with merge_asof, add delivery and minimum-order rules, score price, lead time and payment terms with weights, and write a comparison matrix that highlights the best offer per item.",[12,63],{"path":351,"title":352,"description":353,"type":8,"topics":354,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fconsolidate-employee-expense-claims-into-a-report","Consolidate Employee Expense Claims into a Report","Turn a folder of employee expense claim forms into one checked report with pandas and openpyxl: read header cells and the claim table from each form, convert foreign-currency lines, apply policy rules such as category limits, missing receipts and duplicate claims, summarise by employee and cost centre, and write a workbook with an exceptions sheet for the approver.",[12,355],"sheets-and-files",{"path":357,"title":358,"description":359,"type":8,"topics":360,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fconsolidate-timesheets-from-many-workbooks","Consolidate Timesheets from Many Workbooks with Python","Everyone fills in the same timesheet template and sends it back; you need hours by project and person for the week. Read the name and week from each file's header cells, unpivot the day grid into rows, spot who has not submitted, catch unknown project codes, impossible days and short weeks, and write one consolidated workbook.",[355,12,52],{"path":362,"title":363,"description":364,"type":8,"topics":365,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fconvert-multi-currency-transactions-with-an-fx-rate-table","Convert Multi-Currency Transactions with an FX Rate Table","Report transactions in several currencies in one base currency: turn euro-based reference rates into base-currency rates by triangulation, apply the rate in force on each transaction date, round to each currency's minor units, use monthly average rates for the P&L and closing rates for balances, and calculate the unrealised gain or loss on open invoices.",[63,12],{"path":367,"title":368,"description":369,"type":8,"topics":370,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fgenerate-a-staff-rota-in-excel-with-python","Generate a Staff Rota in Excel with Python","Build a weekly shift rota automatically from staff availability and cover requirements: model it as a small optimisation with SciPy's milp solver, enforce one shift a day, contracted maximums, no late-then-early turnarounds and fair weekends, respect shift preferences, then write a colour-coded Excel rota with live coverage checks and verify every rule.",[12,371],"cell-styling",{"path":373,"title":374,"description":375,"type":8,"topics":376,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fmodel-the-impact-of-a-price-increase","Model the Impact of a Price Increase","Estimate what a price increase will do to revenue and gross profit with pandas before announcing it: apply candidate increases per product group, model lost volume with simple elasticity assumptions, respect customer contracts that fix prices until a date, calculate the break-even volume loss for each product, compare scenarios side by side and write an Excel workbook whose assumptions sales and finance can change.",[12,52],{"path":378,"title":379,"description":380,"type":8,"topics":381,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Freconcile-a-stock-count-against-system-inventory","Reconcile a Stock Count Against System Inventory","Compare a physical stock count with the inventory system in pandas: combine count sheets from several counters, normalise SKU codes, total items found in more than one place, outer-join to the system quantities with an indicator, value each variance at cost, pick lines to recount by value and percentage thresholds, and produce an adjustment summary and Excel workbook.",[12,19],{"path":383,"title":384,"description":385,"type":8,"topics":386,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Freconcile-payroll-to-the-general-ledger","Reconcile Payroll to the General Ledger","Prove each month that payroll was posted to the ledger correctly with pandas: check every payslip adds up, map the payroll register to the expense and liability accounts it should hit, compare with the general ledger journal by account and cost centre, tie net pay to the bank payment file, and produce a reconciliation workbook that explains every difference.",[12,63],{"path":388,"title":389,"description":390,"type":8,"topics":391,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fsend-out-budget-templates-and-consolidate-the-returns","Send Out Budget Templates and Consolidate the Returns","Run the annual budget round from Python: generate one pre-filled budget workbook per cost centre with locked formulas, validated input cells and a hidden identity sheet, then read the returned files back, check that each is the right template for the right cost centre with sensible numbers, consolidate them into one table and keep a tracker of who has returned what.",[12,19],{"path":393,"title":394,"description":395,"type":8,"topics":396,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fupdate-a-price-list-with-effective-dates","Update a Price List with Effective Dates","Apply a sheet of price changes to a price list that keeps history: close each current price the day before its replacement takes effect, add the new row, reject changes that are backdated into a closed period or that would overlap, check that every product has exactly one price on every day, look up any product's price on any date, and produce a change report showing old and new prices side by side.",[12,63],{"path":398,"title":399,"description":400,"type":49,"topics":401,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards","Building Multi-Sheet Excel Dashboards","Build a multi-sheet Excel dashboard in Python: a Summary tab with KPIs and a chart, detail sheets behind it, cross-sheet hyperlinks, frozen headers, and tab order.",[12,199],{"path":403,"title":404,"description":405,"type":8,"topics":406,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-a-data-dictionary-sheet-to-an-excel-report","Add a Data Dictionary Sheet to an Excel Report","Document every column of a multi-sheet Excel report in a generated data dictionary sheet: descriptions kept next to the code, types, units and number formats, example values, blank counts and ranges profiled from the data, links to each sheet, a check that fails on undocumented columns, and a dictionary for a workbook you did not build.",[12,19],{"path":408,"title":409,"description":410,"type":8,"topics":411,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-a-kpi-summary-block-to-an-excel-dashboard","Add a KPI Summary Block to an Excel Dashboard","Generate the top strip of a dashboard from Python: merged tiles with label, value and signed comparison, drawn by one reusable function in xlsxwriter or openpyxl.",[12],{"path":413,"title":414,"description":415,"type":8,"topics":416,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-a-table-of-contents-sheet-with-hyperlinks-in-excel","Add a Table of Contents Sheet with Hyperlinks in Excel","Give a multi-sheet workbook a front door — an index sheet with internal hyperlinks, row counts and back-links, generated from whatever sheets the workbook happens to contain.",[12,371],{"path":418,"title":419,"description":420,"type":8,"topics":421,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-slicer-style-filters-to-an-excel-dashboard","Add a Dropdown Filter That Drives an Excel Dashboard","Give an Excel dashboard a slicer-like control from Python — a data validation dropdown fed by a hidden list, an \"All\" option, SUMIFS formulas and a chart that follow the selection, and a second filter combined with the first — because native slicers cannot be written by openpyxl or XlsxWriter.",[12,19,74],{"path":423,"title":424,"description":425,"type":8,"topics":426,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-summary-sheet-to-excel-report-python","Add a Summary Sheet to an Excel Report with Python","Compute KPIs with pandas groupby, write a styled Summary sheet first, then detail sheets, and make the Summary the active leftmost tab — all with openpyxl.",[12,427],"writing-excel",{"path":429,"title":430,"description":431,"type":8,"topics":432,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fadd-variance-arrows-and-trend-indicators-to-a-dashboard","Add Variance Arrows and Trend Indicators to a Dashboard","Show at a glance whether each dashboard figure moved the right way: custom number formats that put a coloured up or down arrow next to a variance without changing the value, separate formats for measures where down is good, a dead band so tiny changes show as flat, a three-period trend indicator built with formulas, and a check of the displayed text with LibreOffice.",[12,433],"number-formats",{"path":435,"title":436,"description":437,"type":8,"topics":438,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fbuild-a-dashboard-sheet-with-charts-from-multiple-tabs","Build a Dashboard Sheet with Charts from Multiple Tabs","Assemble one dashboard page whose charts read from other sheets: cross-sheet series references sized from the data, cell-anchored layout, and the openpyxl equivalent.",[199,12],{"path":440,"title":441,"description":442,"type":8,"topics":443,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fbuild-a-one-page-executive-summary-sheet","Build a One-Page Executive Summary Sheet","Build the first sheet of a monthly Excel report as a one-page executive summary with Python: four headline figures against budget and last year, three sentences of commentary written from the numbers, a small trend chart, the biggest movers, and page setup that prints on exactly one A4 sheet — checked by converting it to PDF.",[12,199],{"path":445,"title":446,"description":447,"type":8,"topics":448,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Fbuild-a-rolling-12-month-chart-on-an-excel-dashboard","Build a Rolling 12-Month Chart on an Excel Dashboard","Give an Excel dashboard a chart that always shows the latest twelve months, built from Python with openpyxl: a helper block of EDATE and SUMIFS formulas anchored on the newest month in the data, an optional override cell for looking back, a prior-year comparison line, and checks with LibreOffice that the window moves when new months arrive.",[199,12,74],{"path":450,"title":451,"description":452,"type":8,"topics":453,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Flay-out-a-dashboard-sheet-on-a-grid","Lay Out a Dashboard Sheet on a Grid","Lay out a generated Excel dashboard on a regular grid with openpyxl: set uniform column widths and row heights, describe every tile and chart by grid position and span, snap charts to cell boundaries with two-cell anchors so they line up and resize with the grid, and check the layout for overlaps before anyone opens the file.",[12,199],{"path":455,"title":456,"description":457,"type":8,"topics":458,"kind":13},"\u002Fautomating-reporting-workflows\u002Fbuilding-multi-sheet-excel-dashboards\u002Flink-dashboard-cells-to-data-sheets-with-formulas","Link Dashboard Cells to Data Sheets with Formulas","Build an Excel dashboard whose figures are live formulas pointing at the data sheets — SUMIFS and COUNTIFS over a table, a named report-month cell readers can change, quoted sheet names, errors handled with IFERROR — so the dashboard updates when the data does, and check the results without Excel.",[12,74,11],{"path":460,"title":461,"description":462,"type":8,"topics":463,"kind":13},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-a-weekly-digest-of-several-reports-in-one-email","Send a Weekly Digest of Several Reports in One Email","Replace five separate report emails with one weekly digest: collect the week's report files from a manifest, pull a headline figure from each workbook, build one HTML email with a section per report and a plain-text alternative, attach the files while keeping under a size limit (linking the large ones instead), state clearly which reports were not produced, and preview the message before sending.",[38,12],{"path":465,"title":466,"description":467,"type":8,"topics":468,"kind":13},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-each-recipient-their-own-excel-report","Send Each Recipient Their Own Excel Report with Python","Email every regional manager a workbook with only their region's figures — built in memory, sent over one SMTP connection, logged per recipient and safe to rerun. Check the recipient mapping before anything is sent, preview the plan, handle a rejected address without stopping the batch, and verify nobody received someone else's data.",[38,12],{"path":470,"title":471,"description":472,"type":8,"topics":473,"kind":13},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fadd-bookmarks-and-a-cover-page-to-an-excel-pdf-export","Add Bookmarks and a Cover Page to an Excel PDF Export","Finish a multi-sheet Excel PDF export like a real report: read the sheet bookmarks LibreOffice already writes, prepend a cover page with a contents list built with reportlab, rebuild a nested bookmark tree with pypdf, number pages so the cover is not page 1, open the PDF with the bookmarks panel showing, and test the result.",[474,12],"pdf-export",{"path":476,"title":477,"description":478,"type":49,"topics":479,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates","Generating Excel Reports from Templates","Inject data into a prepared .xlsx with openpyxl instead of rebuilding sheets from scratch — preserve branding, formulas, and print areas, then save a dated copy.",[12,11],{"path":481,"title":482,"description":483,"type":8,"topics":484,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fbuild-a-word-report-with-tables-from-excel-data","Build a Word Report with Tables from Excel Data","Turn Excel data into a Word report with python-docx: headings and generated commentary, DataFrames written as properly styled Word tables with right-aligned numbers, fixed column widths and a header row that repeats on every page, a landscape section for a wide table, a chart image with a caption, and checks of the finished document.",[12],{"path":486,"title":487,"description":488,"type":8,"topics":489,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Ffill-excel-template-with-python-openpyxl","Fill an Excel Template with Python and openpyxl","Load a prepared .xlsx template with openpyxl, set named cells for title, date and totals, fill a repeating data table from a list or DataFrame, and save a new file.",[12,11],{"path":491,"title":492,"description":493,"type":8,"topics":494,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Ffill-pdf-forms-from-excel-rows-with-python","Fill PDF Forms from Excel Rows with Python","Fill a fillable PDF form — an expense claim, an order form, a government template — once per spreadsheet row with pypdf: list the form's field names, map sheet columns to fields, format numbers and dates as text, tick checkboxes with the right state name, flatten the result so it cannot be edited, and verify every filled file.",[474,12],{"path":496,"title":497,"description":498,"type":8,"topics":499,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-an-html-report-from-excel-data-with-jinja2","Generate an HTML Report from Excel Data with Jinja2","Build a complete, self-contained HTML report from an Excel workbook with pandas and Jinja2 templates: shape the data in Python and keep the layout in a template, autoescape cell text, format numbers with custom filters, loop over sections, draw bar charts with plain HTML and CSS, share a base layout through template inheritance, fail fast on missing values, and test the output.",[12,500],"publishing",{"path":502,"title":503,"description":504,"type":8,"topics":505,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-customer-account-statements-from-a-ledger","Generate Customer Account Statements from a Ledger","Produce a statement workbook for every customer from one receivables ledger with pandas and XlsxWriter: opening balance brought forward, the period transactions with a running balance, closing balance, an ageing summary built by allocating payments to the oldest invoices, a statement layout with formats, and reconciliation checks against the ledger.",[12,474],{"path":507,"title":508,"description":509,"type":8,"topics":510,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-invoices-from-an-excel-template","Generate Invoices from an Excel Template with Python","Produce one invoice workbook per customer from a designed Excel template — named cells instead of hard-coded addresses, money calculated with Decimal and a stated VAT rounding rule, invoice numbers that never repeat or skip, a fixed block of line rows with an overflow check, a register of everything issued and a PDF for each invoice.",[12,11],{"path":512,"title":513,"description":514,"type":8,"topics":515,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-one-excel-report-per-region-in-a-loop","Generate One Excel Report per Region in a Loop","Split one dataset into many workbooks safely: a filename that cannot collide or break a filesystem, one failure that does not stop the batch, atomic writes, an empty-group decision, and a manifest of what was produced.",[12,355],{"path":517,"title":518,"description":519,"type":8,"topics":520,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-one-pdf-per-excel-row","Generate One PDF per Excel Row","Turn every row of a sheet into its own PDF — customer statements, certificates, remittance advices — either drawn directly with reportlab or by filling an Excel template per row and converting all of them in one LibreOffice call; with safe file names, a combined print file, and a check that each PDF contains the right customer and amount.",[474,12],{"path":522,"title":523,"description":524,"type":8,"topics":525,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-powerpoint-slides-from-excel-data","Generate PowerPoint Slides from Excel Data","Build the monthly deck from the spreadsheet instead of by copy and paste: python-pptx slides with a title per region, native editable PowerPoint charts from pandas summaries, a formatted table, a KPI headline computed from the data, a company template's layouts, and a check that renders the deck to PDF.",[12,199],{"path":527,"title":528,"description":529,"type":8,"topics":530,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-word-documents-from-excel-rows","Generate Word Documents from Excel Rows with Python","Do a mail merge in Python: one Word letter, statement or certificate per row of a spreadsheet, filled from a .docx template. Replace placeholders even when Word has split them across formatting runs, fill header, footer and table placeholders, add a row per line item, format money and dates, catch unfilled fields and convert the results to PDF.",[12,474],{"path":532,"title":533,"description":534,"type":8,"topics":535,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fkeep-charts-and-images-when-filling-an-excel-template","Keep Charts and Images When Filling an Excel Template","openpyxl drops charts, images and pivot tables on re-save. Why it happens, which objects survive, and three ways to fill a template without losing its visuals.",[199,12],{"path":537,"title":538,"description":539,"type":8,"topics":540,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fpopulate-excel-template-without-losing-formatting","Populate an Excel Template Without Losing Formatting","Why pandas.to_excel destroys template styling and openpyxl preserves it — what load_workbook keeps, what it can drop, and how to set values without touching styles.",[12],{"path":542,"title":543,"description":544,"type":8,"topics":545,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fprint-mailing-labels-from-an-excel-address-list","Print Mailing Labels from an Excel Address List","Turn an Excel address list into a print-ready PDF of mailing labels with pandas and reportlab: describe a label sheet such as Avery L7160 or 5160 by its measurements, tidy addresses by dropping blank lines, shrink long lines to fit, start on a partly used sheet, print an alignment test, and check every address landed inside its label.",[12,474],{"path":547,"title":548,"description":549,"type":8,"topics":550,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Frepeat-a-template-block-for-each-record","Repeat a Template Block for Each Record in an Excel Report","Stamp a designed block of rows — a customer statement, a card, a mini-report — once per record down a single sheet with openpyxl, copying styles, merged cells, row heights and conditional formatting, translating formulas to their new rows, growing the block for records with more line items and starting each record on a new printed page.",[12,11],{"path":552,"title":553,"description":554,"type":8,"topics":555,"kind":13},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Freplace-placeholders-in-an-excel-template-with-python","Replace Placeholders in an Excel Template with Python","Let report designers type named markers such as customer and period straight into the template, then fill them from Python: whole-cell placeholders that keep numbers numeric, placeholders inside text, a repeating row for line items, and checks for anything left unfilled.",[12],{"path":557,"title":558,"description":559,"type":8,"topics":560,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fapplying-number-and-date-formats-in-excel\u002Flocalise-an-excel-report-for-other-languages-and-locales","Localise an Excel Report for Other Languages and Locales","Produce one Excel report for readers in Germany, France and Poland without breaking it: let number formats follow each reader's separators, use the locale-aware short date, pin month names to a language with LCID tags, place currency symbols, translate labels from one table, set right-to-left sheets, and check the result under each locale.",[433,12],{"path":562,"title":563,"description":564,"type":8,"topics":565,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fbuilding-excel-reports-with-xlsxwriter\u002Fadd-text-boxes-and-shapes-to-excel-with-xlsxwriter","Add Text Boxes and Shapes to Excel with XlsxWriter","Float commentary, notes and labels over an Excel report with XlsxWriter insert_textbox: size, fill, border and font options, multi-line and rotated text, gradient fills and hyperlinks, text linked to a cell (and why it shows empty in LibreOffice), placing a box below a table of any length, and when a formatted cell is the better choice.",[12,80],{"path":567,"title":568,"description":569,"type":8,"topics":570,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fbuilding-excel-reports-with-xlsxwriter\u002Ffreeze-panes-and-set-zoom-with-xlsxwriter","Freeze Panes and Set Zoom with XlsxWriter","Control how each sheet of an XlsxWriter report opens: freeze the header row and the first column, split panes instead of freezing, set the zoom per sheet, hide gridlines, choose which sheet and cell are active, scroll the view to a starting cell, colour the tabs, and check every view setting by reading the file back with openpyxl.",[80,12],{"path":572,"title":573,"description":574,"type":8,"topics":575,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fbuilding-excel-reports-with-xlsxwriter\u002Finsert-checkboxes-with-xlsxwriter","Insert Checkboxes in Excel with xlsxwriter","Turn a column of TRUE\u002FFALSE values into clickable checkboxes — a month-end close checklist, a review sign-off column, a to-do list. Use xlsxwriter's insert_checkbox, count and percentage-complete formulas that show the right value before recalculation, strike through finished rows with conditional formatting, read the ticks back, and fall back gracefully where checkboxes are not supported.",[80,12],{"path":577,"title":578,"description":579,"type":8,"topics":580,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fbuilding-excel-reports-with-xlsxwriter\u002Fset-print-options-headers-and-footers-with-xlsxwriter","Set Print Options, Headers and Footers with XlsxWriter","Make an XlsxWriter report print properly: landscape A4, fit to one page wide, repeat the header row on every page, set the print area and margins, add page breaks between groups, and write headers and footers with the report name, page X of Y, the print date and a logo — then check the printed result by exporting it to PDF.",[80,12],{"path":582,"title":583,"description":584,"type":8,"topics":585,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fcreating-charts-in-excel-with-openpyxl\u002Fcreate-a-gantt-chart-in-excel-with-python","Create a Gantt Chart in Excel with Python","Draw a project or month-end close timeline as a native Excel Gantt chart from a task list. Build it from a stacked bar chart with an invisible start series, put the first task at the top and the dates along the bottom, fix the date range, shade progress, and — as an alternative — paint a Gantt grid with conditional formatting.",[199,12,11],{"path":587,"title":588,"description":589,"type":8,"topics":590,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fcreating-charts-in-excel-with-openpyxl\u002Fput-a-chart-on-its-own-chartsheet-with-openpyxl","Put a Chart on Its Own Chartsheet with openpyxl","Give a chart a whole sheet to itself — a full-screen, full-page chart tab that opens first in the workbook, prints on one page and cannot be dragged out of place. Create chartsheets with openpyxl, size the chart so every application shows it properly, make one per region in a loop, colour and order the tabs, protect them and set landscape printing.",[199,12,11],{"path":592,"title":593,"description":594,"type":8,"topics":595,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Finserting-images-and-logos-into-excel\u002Fadd-a-watermark-to-an-excel-sheet","Add a Watermark to an Excel Sheet with Python","Mark a report as DRAFT or CONFIDENTIAL from Python: make a transparent watermark image with Pillow, place it in the page header with xlsxwriter so it prints on every page, use a sheet background for on-screen marking, stamp the exported PDF with pypdf when the PDF is what gets shared, and avoid the openpyxl re-save that silently removes header images.",[199,12],{"path":597,"title":598,"description":599,"type":8,"topics":600,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Finserting-images-and-logos-into-excel\u002Fbuild-a-product-catalog-with-images-in-excel","Build a Product Catalog with Images in Excel","Turn a product list and a folder of photos into a catalogue workbook: shrink each photo to a thumbnail before inserting it, keep its aspect ratio, centre it in a fixed-size cell, handle products without a photo, group by category, and anchor images so they move and hide with their rows when the sheet is sorted or filtered.",[199,12],{"path":602,"title":603,"description":604,"type":8,"topics":605,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Finserting-images-and-logos-into-excel\u002Fgenerate-qr-codes-and-barcodes-in-excel-with-python","Generate QR Codes and Barcodes in Excel with Python","Put a scannable QR code and a Code 128 barcode next to every row of an asset or stock list: generate the images in memory with qrcode and python-barcode, anchor them in cells with openpyxl, size rows and columns to fit, and prove every code still scans after printing by decoding the rendered PDF.",[199,12],{"path":607,"title":608,"description":609,"type":8,"topics":610,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fprotecting-and-sharing-excel-workbooks\u002Fmake-an-excel-report-accessible","Make an Excel Report Accessible with Python","Generate workbooks that screen-reader users and people with low vision can use: meaningful sheet names and a title, data in real tables with header rows, alternative text on charts and images, no merged cells, meaning that does not rely on colour alone, colours that pass contrast checks, and an automated audit that flags the problems in any workbook.",[611,12],"protection-and-sharing",{"path":613,"title":614,"description":615,"type":8,"topics":616,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fstyling-excel-cells-with-openpyxl\u002Fbuild-a-calendar-sheet-in-excel-with-python","Build a Calendar Sheet in Excel with Python","Generate a printable month-grid calendar in a workbook: the grid from Python's calendar module, weekends shaded, public holidays marked, events from a spreadsheet list written into their day cells, ISO week numbers down the side, twelve months on one sheet or one per tab, and a layout that prints on one page.",[12,371],{"path":618,"title":619,"description":620,"type":8,"topics":621,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fstyling-excel-cells-with-openpyxl\u002Findent-cells-to-show-a-hierarchy-with-openpyxl","Indent Cells to Show a Hierarchy with openpyxl","Lay out a chart of accounts, an organisation or a product tree the way people read hierarchies: children indented under their parent, parents in bold with rolled-up totals, and rows grouped so each branch can be collapsed. Work out each row's depth from a parent–child table, set Alignment(indent=...), roll values up the tree and add outline levels with openpyxl.",[371,12,11],{"path":623,"title":624,"description":625,"type":8,"topics":626,"kind":13},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fstyling-excel-cells-with-openpyxl\u002Finsert-page-breaks-between-groups-with-openpyxl","Insert Page Breaks Between Groups with openpyxl","Make each region, customer or department start on a new printed page: find where each group ends, add manual row breaks with openpyxl, repeat the header on every page, add column breaks for wide sheets, clear old breaks, do the same with XlsxWriter, and prove the result by rendering a PDF and checking which group starts each page.",[371,12,474],{"path":628,"title":629,"description":630,"type":8,"topics":631,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fhandling-excel-file-formats-and-conversions\u002Fsave-a-workbook-as-an-excel-template-with-python","Save a Workbook as an Excel Template with Python","Create a real .xltx template with openpyxl — styled headers, input cells, dropdowns, formulas and protection — by setting workbook.template = True, check the content type that makes Excel treat it as a template, and avoid the trap of loading an .xltx and saving it as .xlsx without switching the flag back, which produces a file Excel refuses to open.",[632,12,11],"file-formats",{"path":634,"title":635,"description":636,"type":8,"topics":637,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fclear-cell-contents-and-formatting-with-openpyxl","Clear Cell Contents and Formatting with openpyxl","Reproduce Excel's Clear menu in Python: clear values but keep formatting, reset formatting but keep values, remove comments and hyperlinks, or clear everything. Covers clearing a template's input area while keeping its formulas, and why merged cells make a simple clearing loop fail.",[11,371,12],{"path":639,"title":640,"description":641,"type":8,"topics":642,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fmerge-repeated-group-labels-into-single-cells-with-openpyxl","Merge Repeated Group Labels into Single Cells with openpyxl","Turn a report where the region name repeats on every row into one merged, vertically centred label per group: find runs of equal values, merge them with openpyxl, handle nested groups so an inner label never spans two outer groups, keep borders tidy, and know when to hide repeats with conditional formatting instead so the sheet stays sortable.",[11,12,371],{"path":644,"title":645,"description":646,"type":8,"topics":647,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fmove-a-range-of-cells-with-openpyxl","Move a Range of Cells with openpyxl move_range","Shift a block of cells to a new position with ws.move_range: values and styles move, translate=True rewrites formulas inside the block, and everything else — formulas that point at the block, merged cells, conditional formats — stays where it was. Learn the rules and a safe way to move a table.",[11,74,12],{"path":649,"title":650,"description":651,"type":8,"topics":652,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fset-the-active-sheet-and-tab-colour-with-openpyxl","Set the Active Sheet, Selected Cell and Tab Colours with openpyxl","Decide what a reader sees when a generated workbook opens: which sheet is in front, which cell is selected, where the view is scrolled to, and which tabs are coloured. Includes the trap that leaves two sheets grouped after wb.active changes, and the xlsxwriter equivalents.",[12,11,355],{"path":654,"title":655,"description":656,"type":8,"topics":657,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fset-workbook-properties-with-python","Set Workbook Properties Like Author and Title with Python","Give generated workbooks a proper title, author, company, keywords and custom properties such as the data source or row count. See what openpyxl and xlsxwriter can set, which fields each one overwrites on save, and how to read the properties back for auditing.",[12,11,80],{"path":659,"title":660,"description":661,"type":8,"topics":662,"kind":13},"\u002Fgetting-started-with-python-excel-automation\u002Fwriting-dataframes-to-excel-with-pandas\u002Fwrite-grouped-data-with-blank-rows-between-groups","Write Grouped Data with Blank Rows Between Groups","Write a pandas DataFrame to Excel as a readable grouped report — a heading row for each group, its detail rows, a subtotal row with a live SUBTOTAL formula and a blank row before the next group — by planning the row positions first and writing once, instead of inserting rows afterwards; add a grand total that does not double count, optional outline levels, and check the formulas recalculate correctly.",[427,12],1790972052271]