[{"data":1,"prerenderedAt":693},["ShallowReactive",2],{"area:automate-and-deliver":3},[4,12,18,22,27,32,37,41,46,50,54,58,63,67,71,75,79,83,87,91,95,99,104,111,117,122,126,130,134,138,142,146,150,154,158,162,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,228,232,236,240,244,248,252,256,260,264,268,272,276,280,285,289,293,297,301,305,309,313,317,322,326,331,335,339,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,428,432,436,440,444,448,453,457,461,465,469,473,477,481,486,490,494,498,502,506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,591,595,599,603,607,611,615,619,623,628,632,636,640,646,650,654,658,662,666,671,675,680,684,688],{"path":5,"title":6,"type":7,"topics":8},"\u002Fadvanced-data-transformation-and-cleaning\u002Fexcel-formula-equivalents-in-pandas\u002Fpmt-npv-and-irr-in-python","PMT, NPV, IRR and XIRR Excel Functions in Python","how-to",[9,10,11],"formula-equivalents","pandas","reliable-jobs",{"path":13,"title":14,"type":15,"topics":16},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases","Moving Data Between Excel and Databases","guide",[17,10],"data-sources",{"path":19,"title":20,"type":7,"topics":21},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fcache-api-responses-when-building-excel-reports","Cache API Responses When Building Excel Reports",[17,11],{"path":23,"title":24,"type":7,"topics":25},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fcompare-an-excel-file-with-a-database-table","Compare an Excel File with a Database Table",[17,26],"data-validation",{"path":28,"title":29,"type":7,"topics":30},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fdownload-new-excel-files-from-an-sftp-server","Download New Excel Files from an SFTP Server",[17,31],"scheduling",{"path":33,"title":34,"type":7,"topics":35},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fexport-a-large-database-table-to-excel-in-chunks","Export a Large Database Table to Excel in Chunks",[17,36],"large-files",{"path":38,"title":39,"type":7,"topics":40},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fexport-database-lookup-tables-as-excel-dropdown-lists","Export Database Lookup Tables as Excel Dropdown Lists",[17,26],{"path":42,"title":43,"type":7,"topics":44},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fexport-sql-query-results-to-excel-with-python","Export SQL Query Results to Excel with Python",[17,45,10],"writing-excel",{"path":47,"title":48,"type":7,"topics":49},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Ffetch-api-data-into-excel-with-python-requests","Fetch API Data into Excel with Python requests",[17,45],{"path":51,"title":52,"type":7,"topics":53},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Ffetch-paginated-api-data-into-excel","Fetch Paginated API Data into Excel",[17],{"path":55,"title":56,"type":7,"topics":57},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fgenerate-sql-insert-statements-from-an-excel-sheet","Generate SQL INSERT Statements from an Excel Sheet",[17,45],{"path":59,"title":60,"type":7,"topics":61},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fload-an-excel-file-into-a-sql-database-with-pandas","Load an Excel File into a SQL Database with pandas",[17,62,10],"reading-excel",{"path":64,"title":65,"type":7,"topics":66},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fload-excel-data-into-mongodb-with-python","Load Excel Data into MongoDB with Python",[17],{"path":68,"title":69,"type":7,"topics":70},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fload-excel-into-sqlite-with-a-defined-schema","Load Excel into SQLite with a Defined Schema",[17,10],{"path":72,"title":73,"type":7,"topics":74},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fquery-a-database-for-ids-listed-in-an-excel-sheet","Query a Database for IDs Listed in an Excel Sheet",[17,10],{"path":76,"title":77,"type":7,"topics":78},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fquery-excel-files-with-sql-using-duckdb","Query Excel Files with SQL Using DuckDB",[17,36],{"path":80,"title":81,"type":7,"topics":82},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fread-excel-attachments-into-a-database-nightly","Read Excel Attachments into a Database Nightly",[17,31],{"path":84,"title":85,"type":7,"topics":86},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Frefresh-an-excel-report-from-a-database-on-a-schedule","Refresh an Excel Report from a Database on a Schedule",[17,31],{"path":88,"title":89,"type":7,"topics":90},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fscrape-a-web-page-table-into-excel-with-pandas","Scrape a Web Page Table into Excel with pandas",[17,10],{"path":92,"title":93,"type":7,"topics":94},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fsync-google-sheets-with-excel-using-python","Sync Google Sheets with Excel Using Python",[17],{"path":96,"title":97,"type":7,"topics":98},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmoving-data-between-excel-and-databases\u002Fupsert-excel-rows-into-a-database-table","Upsert Excel Rows into a Database Table with Python",[17,10],{"path":100,"title":101,"type":7,"topics":102},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-large-excel-files-in-python\u002Fstream-excel-rows-into-a-database-with-openpyxl","Stream Excel Rows into a Database with openpyxl",[36,17,103],"openpyxl",{"path":105,"title":106,"type":107,"topics":108},"\u002Fautomating-reporting-workflows","Automating Reporting Workflows with Python and Excel","overview",[31,109,110],"email-delivery","report-layouts",{"path":112,"title":113,"type":7,"topics":114},"\u002Fautomating-reporting-workflows\u002Fautomating-excel-online-with-microsoft-graph\u002Fhandle-microsoft-graph-throttling-for-excel","Handle Microsoft Graph Throttling in Excel Automation",[115,11,116],"excel-online","troubleshooting",{"path":118,"title":119,"type":7,"topics":120},"\u002Fautomating-reporting-workflows\u002Fautomating-excel-online-with-microsoft-graph\u002Fread-an-excel-file-from-sharepoint-or-onedrive-into-pandas","Read an Excel File from SharePoint or OneDrive into pandas",[115,121,62,10],"publishing",{"path":123,"title":124,"type":7,"topics":125},"\u002Fautomating-reporting-workflows\u002Fautomating-excel-online-with-microsoft-graph\u002Frun-a-report-when-an-excel-file-changes-in-onedrive","Run a Report When an Excel File Changes in OneDrive",[115,31],{"path":127,"title":128,"type":7,"topics":129},"\u002Fautomating-reporting-workflows\u002Fautomating-excel-online-with-microsoft-graph\u002Fshare-an-excel-file-in-onedrive-with-a-link-using-graph","Share an Excel File in OneDrive with a Link Using Graph",[115,121],{"path":131,"title":132,"type":7,"topics":133},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-cash-position-report-from-bank-statements","Build a Cash Position Report from Bank Statements",[110,17],{"path":135,"title":136,"type":7,"topics":137},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-credit-control-dunning-letter-run","Build a Credit Control Dunning Letter Run",[110,109],{"path":139,"title":140,"type":7,"topics":141},"\u002Fautomating-reporting-workflows\u002Fbuilding-finance-and-operations-reports\u002Fbuild-a-month-end-close-checklist-tracker","Build a Month-End Close Checklist Tracker",[110,11],{"path":143,"title":144,"type":15,"topics":145},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib","Emailing Excel Reports with smtplib",[109],{"path":147,"title":148,"type":7,"topics":149},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fattach-multiple-excel-files-to-one-email-in-python","Attach Multiple Excel Files to One Email in Python",[109],{"path":151,"title":152,"type":7,"topics":153},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fdownload-excel-attachments-from-an-email-inbox","Download Excel Attachments from an Email Inbox with Python",[109,17],{"path":155,"title":156,"type":7,"topics":157},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Femail-a-download-link-instead-of-an-excel-attachment","Email a Download Link Instead of an Excel Attachment",[109,121],{"path":159,"title":160,"type":7,"topics":161},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Femail-an-excel-report-with-an-html-summary-body","Email an Excel Report with an HTML Summary Body",[109],{"path":163,"title":164,"type":7,"topics":165},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fembed-a-chart-image-in-the-body-of-a-report-email","Embed a Chart Image in the Body of a Report Email",[109,166],"charts-and-images",{"path":168,"title":169,"type":7,"topics":170},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fpersonalise-report-emails-with-jinja2-templates","Personalise Report Emails with Jinja2 Templates",[109],{"path":172,"title":173,"type":7,"topics":174},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fqueue-and-retry-failed-report-emails","Queue and Retry Failed Report Emails",[109,11],{"path":176,"title":177,"type":7,"topics":178},"\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",[109,110],{"path":180,"title":181,"type":7,"topics":182},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-an-excel-report-through-outlook-from-python","Send an Excel Report Through Outlook from Python",[109],{"path":184,"title":185,"type":7,"topics":186},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-an-excel-report-with-amazon-ses","Send an Excel Report with Amazon SES",[109,121],{"path":188,"title":189,"type":7,"topics":190},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-an-excel-report-with-gmail","Send an Excel Report with Gmail from Python",[109],{"path":192,"title":193,"type":7,"topics":194},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-an-excel-report-with-the-sendgrid-api","Send an Excel Report with the SendGrid API",[109],{"path":196,"title":197,"type":7,"topics":198},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-each-recipient-their-own-excel-report","Send Each Recipient Their Own Excel Report with Python",[109,110],{"path":200,"title":201,"type":7,"topics":202},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-excel-report-to-multiple-recipients-python","Send an Excel Report to Multiple Recipients in Python",[109],{"path":204,"title":205,"type":7,"topics":206},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fsend-report-emails-at-each-recipients-local-time","Send Report Emails at Each Recipient's Local Time",[109,31],{"path":208,"title":209,"type":7,"topics":210},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Ftest-report-emails-with-a-local-smtp-server","Test Report Emails with a Local SMTP Server",[109,11],{"path":212,"title":213,"type":7,"topics":214},"\u002Fautomating-reporting-workflows\u002Femailing-excel-reports-with-smtplib\u002Fzip-large-excel-attachments-before-emailing","Zip Large Excel Attachments Before Emailing Them",[109,36],{"path":216,"title":217,"type":15,"topics":218},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation","Error Handling and Logging in Excel Automation",[11,116],{"path":220,"title":221,"type":7,"topics":222},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fdetect-a-scheduled-report-that-did-not-run","Detect a Scheduled Report That Did Not Run",[11,31],{"path":224,"title":225,"type":7,"topics":226},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fignore-excel-lock-files-when-processing-a-folder","Ignore Excel Lock Files When Processing a Folder",[11,227],"sheets-and-files",{"path":229,"title":230,"type":7,"topics":231},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Flog-python-excel-script-output-to-a-file","Log Python Excel Script Output to a File",[11],{"path":233,"title":234,"type":7,"topics":235},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fmake-an-excel-report-job-safe-to-rerun","Make an Excel Report Job Safe to Rerun",[11],{"path":237,"title":238,"type":7,"topics":239},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fprevent-formula-injection-in-excel-exports","Prevent Formula Injection in Excel Exports from Python",[11,45],{"path":241,"title":242,"type":7,"topics":243},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fprevent-overlapping-runs-of-an-excel-report-job","Prevent Overlapping Runs of an Excel Report Job",[11,31],{"path":245,"title":246,"type":7,"topics":247},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fquarantine-bad-excel-files-in-a-batch-job","Quarantine Bad Excel Files in a Batch Job",[11],{"path":249,"title":250,"type":7,"topics":251},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fread-untrusted-excel-files-safely-in-python","Read Untrusted Excel Files Safely in Python",[11,62],{"path":253,"title":254,"type":7,"topics":255},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fretry-a-failed-excel-report-job-in-python","Retry a Failed Excel Report Job in Python",[11],{"path":257,"title":258,"type":7,"topics":259},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fsend-an-alert-when-an-excel-report-job-fails","Send an Alert When an Excel Report Job Fails",[11,109],{"path":261,"title":262,"type":7,"topics":263},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fset-timeouts-on-steps-of-an-excel-report-job","Set Timeouts on Steps of an Excel Report Job",[11],{"path":265,"title":266,"type":7,"topics":267},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fskip-a-report-when-the-input-file-has-not-changed","Skip a Report Run When the Input File Has Not Changed",[11,31],{"path":269,"title":270,"type":7,"topics":271},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Ftrack-run-history-and-step-timings-of-a-report-job","Track Run History and Step Timings of a Report Job",[11],{"path":273,"title":274,"type":7,"topics":275},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fvalidate-an-excel-report-before-sending-it","Validate an Excel Report Before Sending It",[11,26],{"path":277,"title":278,"type":7,"topics":279},"\u002Fautomating-reporting-workflows\u002Ferror-handling-and-logging-in-excel-automation\u002Fwrite-excel-files-atomically-in-python","Write Excel Files Atomically in Python",[11,45],{"path":281,"title":282,"type":15,"topics":283},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf","Exporting Excel Reports to PDF",[284],"pdf-export",{"path":286,"title":287,"type":7,"topics":288},"\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",[284,110],{"path":290,"title":291,"type":7,"topics":292},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fadd-headers-footers-and-page-numbers-to-an-excel-pdf","Add Headers, Footers and Page Numbers to an Excel PDF",[284],{"path":294,"title":295,"type":7,"topics":296},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fcheck-a-pdf-export-for-cut-off-columns","Check a PDF Export for Cut-Off Columns",[284,11],{"path":298,"title":299,"type":7,"topics":300},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-excel-file-to-pdf-with-python","Convert an Excel File to PDF with Python",[284],{"path":302,"title":303,"type":7,"topics":304},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-excel-to-pdf-on-linux-with-libreoffice","Convert Excel to PDF on Linux with LibreOffice",[284],{"path":306,"title":307,"type":7,"topics":308},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-only-selected-sheets-of-a-workbook-to-pdf","Convert Only Selected Sheets of a Workbook to PDF",[284],{"path":310,"title":311,"type":7,"topics":312},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fcreate-a-pdf-report-from-excel-data-with-reportlab","Create a PDF Report from Excel Data with ReportLab",[284],{"path":314,"title":315,"type":7,"topics":316},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fexport-an-excel-report-to-pdf-a-for-archiving","Export an Excel Report to PDF\u002FA for Archiving",[284],{"path":318,"title":319,"type":7,"topics":320},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Ffit-an-excel-sheet-to-one-page-in-pdf","Fit an Excel Sheet to One Page Wide When Exporting to PDF",[284,321],"cell-styling",{"path":323,"title":324,"type":7,"topics":325},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fmerge-excel-pdf-exports-into-one-file","Merge Several Excel PDF Exports into One File",[284],{"path":327,"title":328,"type":7,"topics":329},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fpassword-protect-a-pdf-exported-from-excel","Password-Protect a PDF Exported from Excel",[284,330],"protection-and-sharing",{"path":332,"title":333,"type":7,"topics":334},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fsign-a-pdf-report-digitally-with-python","Sign a PDF Report Digitally with Python",[284,330],{"path":336,"title":337,"type":7,"topics":338},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fturn-pdf-report-pages-into-images","Turn PDF Report Pages into Images",[284,166],{"path":340,"title":341,"type":7,"topics":342},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Ffill-pdf-forms-from-excel-rows-with-python","Fill PDF Forms from Excel Rows with Python",[284,110],{"path":344,"title":345,"type":7,"topics":346},"\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",[110,121],{"path":348,"title":349,"type":7,"topics":350},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-customer-account-statements-from-a-ledger","Generate Customer Account Statements from a Ledger",[110,284],{"path":352,"title":353,"type":7,"topics":354},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-one-pdf-per-excel-row","Generate One PDF per Excel Row",[284,110],{"path":356,"title":357,"type":7,"topics":358},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-word-documents-from-excel-rows","Generate Word Documents from Excel Rows with Python",[110,284],{"path":360,"title":361,"type":7,"topics":362},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fprint-mailing-labels-from-an-excel-address-list","Print Mailing Labels from an Excel Address List",[110,284],{"path":364,"title":365,"type":15,"topics":366},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage","Publishing Excel Reports to Cloud Storage",[121],{"path":368,"title":369,"type":7,"topics":370},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fname-version-and-archive-generated-excel-reports","Name, Version and Archive Generated Excel Reports",[121,11],{"path":372,"title":373,"type":7,"topics":374},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fpost-an-excel-report-to-a-slack-channel-with-python","Post an Excel Report to a Slack Channel with Python",[121],{"path":376,"title":377,"type":7,"topics":378},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fpost-an-excel-report-to-microsoft-teams-with-python","Post an Excel Report to Microsoft Teams with Python",[121],{"path":380,"title":381,"type":7,"topics":382},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fread-an-excel-file-directly-from-amazon-s3-with-pandas","Read an Excel File Directly from Amazon S3 with pandas",[17,121,62,10],{"path":384,"title":385,"type":7,"topics":386},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fsave-excel-reports-to-google-drive-with-python","Save Excel Reports to Google Drive with Python",[121],{"path":388,"title":389,"type":7,"topics":390},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-over-sftp","Upload an Excel Report over SFTP with Python",[121],{"path":392,"title":393,"type":7,"topics":394},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-to-amazon-s3-with-boto3","Upload an Excel Report to Amazon S3 with boto3",[121],{"path":396,"title":397,"type":7,"topics":398},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-to-azure-blob-storage","Upload an Excel Report to Azure Blob Storage with Python",[121],{"path":400,"title":401,"type":7,"topics":402},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-to-dropbox","Upload an Excel Report to Dropbox with Python",[121],{"path":404,"title":405,"type":7,"topics":406},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-to-google-cloud-storage","Upload an Excel Report to Google Cloud Storage",[121],{"path":408,"title":409,"type":7,"topics":410},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fupload-an-excel-report-to-sharepoint-with-python","Upload an Excel Report to SharePoint with Python",[121],{"path":412,"title":413,"type":7,"topics":414},"\u002Fautomating-reporting-workflows\u002Fpublishing-excel-reports-to-cloud-storage\u002Fwrite-excel-files-to-a-network-share-from-python","Write Excel Files to a Network Share from Python",[121],{"path":416,"title":417,"type":15,"topics":418},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron","Scheduling Python Excel Scripts with Cron",[31],{"path":420,"title":421,"type":7,"topics":422},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fbackfill-excel-reports-for-past-dates","Backfill Excel Reports for Past Dates with Python",[31,11],{"path":424,"title":425,"type":7,"topics":426},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fchoose-a-scheduler-for-python-excel-reports","Choose a Scheduler for Python Excel Reports",[31,427],"choosing-libraries",{"path":429,"title":430,"type":7,"topics":431},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Forchestrate-excel-reports-with-apache-airflow","Orchestrate Excel Reports with Apache Airflow",[31],{"path":433,"title":434,"type":7,"topics":435},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Forchestrate-excel-reports-with-dagster","Orchestrate Excel Reports with Dagster",[31],{"path":437,"title":438,"type":7,"topics":439},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Forchestrate-excel-reports-with-prefect","Orchestrate Excel Reports with Prefect",[31,11],{"path":441,"title":442,"type":7,"topics":443},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-a-python-excel-report-in-docker","Run a Python Excel Report in Docker",[31,11],{"path":445,"title":446,"type":7,"topics":447},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-a-python-excel-report-in-github-actions","Run a Python Excel Report in GitHub Actions",[31],{"path":449,"title":450,"type":7,"topics":451},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-a-report-on-the-last-business-day-of-the-month","Run a Report on the Last Business Day of the Month",[31,452],"dates-and-times",{"path":454,"title":455,"type":7,"topics":456},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-an-excel-report-as-a-kubernetes-cronjob","Run an Excel Report as a Kubernetes CronJob",[31,11],{"path":458,"title":459,"type":7,"topics":460},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-an-excel-report-in-aws-lambda","Run a Python Excel Report in AWS Lambda",[31,121],{"path":462,"title":463,"type":7,"topics":464},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-an-excel-report-in-azure-functions","Run an Excel Report in Azure Functions",[31,121],{"path":466,"title":467,"type":7,"topics":468},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-an-excel-report-on-google-cloud-run-jobs","Run an Excel Report on Google Cloud Run Jobs",[31,121],{"path":470,"title":471,"type":7,"topics":472},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Frun-python-excel-script-on-windows-task-scheduler","Run a Python Excel Script on Windows Task Scheduler",[31],{"path":474,"title":475,"type":7,"topics":476},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fschedule-a-python-excel-script-on-macos-with-launchd","Schedule a Python Excel Script on macOS with launchd",[31],{"path":478,"title":479,"type":7,"topics":480},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fschedule-an-excel-report-with-systemd-timers","Schedule an Excel Report with systemd Timers",[31],{"path":482,"title":483,"type":7,"topics":484},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fschedule-excel-reports-with-celery-beat","Schedule Excel Reports with Celery Beat",[31,485],"web-apps",{"path":487,"title":488,"type":7,"topics":489},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fschedule-recurring-excel-reports-with-apscheduler","Schedule Recurring Excel Reports with APScheduler",[31],{"path":491,"title":492,"type":7,"topics":493},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fschedule-reports-correctly-across-time-zones-and-dst","Schedule Reports Correctly Across Time Zones and DST",[31,452],{"path":495,"title":496,"type":7,"topics":497},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Ftrigger-an-excel-report-from-a-webhook","Trigger an Excel Report from a Webhook",[31,485],{"path":499,"title":500,"type":7,"topics":501},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fwait-for-upstream-data-before-running-a-report","Wait for Upstream Data Before Running a Report",[31,11],{"path":503,"title":504,"type":7,"topics":505},"\u002Fautomating-reporting-workflows\u002Fscheduling-python-excel-scripts-with-cron\u002Fwatch-a-folder-and-process-new-excel-files","Watch a Folder and Process New Excel Files with Python",[31,227],{"path":507,"title":508,"type":15,"topics":509},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps","Serving Excel Files from Python Web Apps",[485],{"path":511,"title":512,"type":7,"topics":513},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fadd-an-export-to-excel-action-in-django-admin","Add an Export to Excel Action in Django Admin",[485],{"path":515,"title":516,"type":7,"topics":517},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fbuild-a-gradio-app-that-cleans-an-uploaded-excel-file","Build a Gradio App That Cleans an Uploaded Excel File",[485],{"path":519,"title":520,"type":7,"topics":521},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fbuild-a-streamlit-app-to-upload-and-download-excel","Build a Streamlit App to Upload and Download Excel Files",[485],{"path":523,"title":524,"type":7,"topics":525},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fbuild-an-excel-workbook-in-memory-with-bytesio","Build an Excel Workbook in Memory with BytesIO",[485,45],{"path":527,"title":528,"type":7,"topics":529},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fcache-generated-excel-files-in-a-web-app","Cache Generated Excel Files in a Web App",[485,36],{"path":531,"title":532,"type":7,"topics":533},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fdownload-an-excel-file-from-a-dash-app","Download an Excel File from a Dash App",[485,45],{"path":535,"title":536,"type":7,"topics":537},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fexport-a-django-queryset-to-excel","Export a Django Queryset to Excel",[485,45],{"path":539,"title":540,"type":7,"topics":541},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fgenerate-large-excel-exports-in-a-background-job","Generate Large Excel Exports in a Background Job",[485,36],{"path":543,"title":544,"type":7,"topics":545},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fhandle-an-uploaded-excel-file-in-flask-and-fastapi","Handle an Uploaded Excel File in Flask and FastAPI",[485],{"path":547,"title":548,"type":7,"topics":549},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fimport-an-excel-file-into-django-models","Import an Excel File into Django Models",[485,26],{"path":551,"title":552,"type":7,"topics":553},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Freturn-an-excel-file-from-a-flask-download-endpoint","Return an Excel File from a Flask Download Endpoint",[485],{"path":555,"title":556,"type":7,"topics":557},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Freturn-an-excel-file-from-aws-lambda-through-api-gateway","Return an Excel File from AWS Lambda Through API Gateway",[485,31],{"path":559,"title":560,"type":7,"topics":561},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fstream-an-excel-file-from-a-fastapi-endpoint","Stream an Excel File from a FastAPI Endpoint",[485],{"path":563,"title":564,"type":7,"topics":565},"\u002Fautomating-reporting-workflows\u002Fserving-excel-files-from-python-web-apps\u002Fvalidate-an-uploaded-excel-file-in-a-web-app","Validate an Uploaded Excel File Before Processing It in a Web App",[485,26],{"path":567,"title":568,"type":15,"topics":569},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts","Testing and Packaging Excel Automation Scripts",[11],{"path":571,"title":572,"type":7,"topics":573},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fblock-large-or-sensitive-excel-files-with-a-pre-commit-hook","Block Large or Sensitive Excel Files with a Pre-commit Hook",[11],{"path":575,"title":576,"type":7,"topics":577},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fbuild-a-command-line-tool-for-excel-reports-with-argparse","Build a Command-Line Tool for Excel Reports with argparse",[11],{"path":579,"title":580,"type":7,"topics":581},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fcompare-excel-output-to-a-golden-file-in-tests","Compare Excel Output to a Golden File in Tests",[11,103],{"path":583,"title":584,"type":7,"topics":585},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fcreate-excel-test-fixtures-in-memory","Create Excel Test Fixtures in Memory for pytest",[11,103],{"path":587,"title":588,"type":7,"topics":589},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fdiff-excel-files-in-git-with-a-textconv-driver","Diff Excel Files in Git with a textconv Driver",[11,590],"joins-and-lookups",{"path":592,"title":593,"type":7,"topics":594},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fgenerate-realistic-test-data-for-excel-reports-with-faker","Generate Realistic Test Data for Excel Reports with Faker",[11,10],{"path":596,"title":597,"type":7,"topics":598},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fkeep-excel-report-settings-in-a-config-file","Keep Excel Report Settings in a Config File",[11],{"path":600,"title":601,"type":7,"topics":602},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fmake-excel-output-reproducible","Make Excel Output Reproducible in Python",[11,45],{"path":604,"title":605,"type":7,"topics":606},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fpackage-a-python-excel-script-as-an-exe-with-pyinstaller","Package a Python Excel Script as an EXE with PyInstaller",[11],{"path":608,"title":609,"type":7,"topics":610},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fprofile-a-slow-excel-report-script","Profile a Slow Excel Report Script in Python",[36,103,11],{"path":612,"title":613,"type":7,"topics":614},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fset-up-an-excel-automation-project-with-uv","Set Up an Excel Automation Project with uv",[11],{"path":616,"title":617,"type":7,"topics":618},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fstore-credentials-for-excel-report-scripts-safely","Store Credentials for Excel Report Scripts Safely",[11,109],{"path":620,"title":621,"type":7,"topics":622},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Fstore-excel-files-in-git-with-git-lfs","Store Excel Files in Git with Git LFS",[11],{"path":624,"title":625,"type":7,"topics":626},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-excel-cleaning-code-with-hypothesis","Test Excel Cleaning Code with Hypothesis",[11,627],"data-cleaning",{"path":629,"title":630,"type":7,"topics":631},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-excel-code-against-several-library-versions-with-nox","Test Excel Code Against Several Library Versions with nox",[11,10],{"path":633,"title":634,"type":7,"topics":635},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-excel-output-with-pytest","Test Excel Output with pytest",[11],{"path":637,"title":638,"type":7,"topics":639},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-that-excel-charts-were-written-correctly","Test That Excel Charts Were Written Correctly",[11,166],{"path":641,"title":642,"type":7,"topics":643},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-win32com-and-xlwings-code-without-excel","Test win32com and xlwings Code Without Excel",[644,645,11],"com-automation","xlwings",{"path":647,"title":648,"type":7,"topics":649},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftype-check-an-excel-automation-project","Lint and Type-Check an Excel Automation Project",[11],{"path":651,"title":652,"type":7,"topics":653},"\u002Fformatting-and-charting-excel-reports-with-python\u002Finserting-images-and-logos-into-excel\u002Frender-an-excel-range-as-an-image","Render an Excel Range as an Image with Python",[166,284],{"path":655,"title":656,"type":7,"topics":657},"\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",[321,110,284],{"path":659,"title":660,"type":7,"topics":661},"\u002Fgetting-started-with-python-excel-automation\u002Fautomating-excel-with-com-and-pywin32\u002Fprint-an-excel-workbook-from-python-with-win32com","Print an Excel Workbook from Python with win32com",[644,284],{"path":663,"title":664,"type":7,"topics":665},"\u002Fgetting-started-with-python-excel-automation\u002Fautomating-excel-with-com-and-pywin32\u002Frun-excel-com-automation-from-task-scheduler","Run Excel COM Automation from Task Scheduler Without a Logged-In User",[644,31,116],{"path":667,"title":668,"type":669,"topics":670},"\u002Fgetting-started-with-python-excel-automation\u002Fchoosing-a-python-excel-library\u002Fgoogle-sheets-vs-excel-files-for-python-automation","Google Sheets vs Excel Files for Python Automation","comparison",[427,121],{"path":672,"title":673,"type":669,"topics":674},"\u002Fgetting-started-with-python-excel-automation\u002Fchoosing-a-python-excel-library\u002Fpython-vs-power-automate-for-report-workflows","Python vs Power Automate for Report Workflows",[427,31],{"path":676,"title":677,"type":7,"topics":678},"\u002Fgetting-started-with-python-excel-automation\u002Fhandling-excel-file-formats-and-conversions\u002Fconvert-an-excel-sheet-to-a-markdown-table","Convert an Excel Sheet to a Markdown Table with Python",[679,10,121],"file-formats",{"path":681,"title":682,"type":7,"topics":683},"\u002Fgetting-started-with-python-excel-automation\u002Fhandling-excel-file-formats-and-conversions\u002Fconvert-xml-to-excel-with-pandas","Convert XML to Excel with pandas read_xml",[679,17,10],{"path":685,"title":686,"type":7,"topics":687},"\u002Fgetting-started-with-python-excel-automation\u002Fhandling-excel-file-formats-and-conversions\u002Fread-an-excel-file-from-a-url-or-bytes-in-python","Read an Excel File from a URL or Bytes in Python",[62,17],{"path":689,"title":690,"type":7,"topics":691},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-python-in-excel\u002Fget-external-data-into-python-in-excel","Get External Data into Python in Excel with Power Query",[692,17],"python-in-excel",1790972052270]