Stable spreadsheet copy, renaming, and dating, for municipal wastewater operator daily data entry.
Project description
copy-n-launch-xlsx
The best way to launch this application is to install the CLI using pipx, or to download a release binary.
pipx install copy-n-launch-xlsx
cnlx gui
Download binaries here: Releases
Purpose
This program:
-
Copies a blank spreadsheet file.
-
Renames it, with the date in the filename.
-
Moves the new renamed file to a target folder
In this way, the stable file can be updated in a centralized way. Users can safely launch new daily data entry sheets, without needing to choose a file to launch directly.
Blurb
Spreadsheet templating isn't a new problem.
It's been solved many different ways over the years.
This is just one more solution—built around a very simple workflow that's now used every day by operators at my wastewater treatment plant.
Bring your own spreadsheet.
Click one button.
Get today's dated copy, ready for data entry.
The code is open source (thank you, Memphis taxpayers), and it's been tested on macOS, Windows 11, WSL, and Termux on Android.
XLSX Best Practices
Sheets should use Name Manager variable names and possibly tables, for reference and data aggregation. Variable names allow the cell locations to be adjusted and not referenced.
How To
- Place a spreadsheet named daily_blank.xlsx in the filepath: ~/.copy-n-launch-xlsx/blank/
Blank template:
~/.copy-n-launch-xlsx/blank/daily_blank.xlsx
- Hit the single green button.
Automatically generated files:
~/.copy-n-launch-xlsx/filled/daily-YYYY-MM-DD.xlsx
Helptree
See the copy-n-launch-xlsx Typer CLI structure.
cnlx helptree
- GitHub: https://github.com/City-of-Memphis-Wastewater/typer-helptree
- PyPI: https://pypi.org/project/typer-helptree/
Operator Data Entry Instructions Specific to Maxson Wastewater Treatment Facility
Generally this workflow applies to any context, with the exception of:
- Color meanings
- "Print" page
- The XLIMS reference
Or any other information relating to a specific spreadsheet design.
The specific spreadsheet in question is maintained separately in the Maxson SharePoint.
Instructions:
At midnight, ensure that the file is saved, and then print the "Print" page.
Only the "Print" page is necessary, for data entry into XLIMS.
One printed and saved, close the file.
Do NOT delete any data from the file.
A brand new, dated spreadsheet will be used for the next day.
At the start of each day, after midnight, hit the green button in the Copy-N-Launch-XLSX interface.
This will generate the fresh daily sheet, automatically dated and empty, ready for data entry.
At any time, you can save and close the current spreadsheet.
Hitting the green Launch Daily Spreadsheet button will reopen it, or generate a new one as necessary.
Source code
Source code: Repository
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file copy_n_launch_xlsx-0.2.16.tar.gz.
File metadata
- Download URL: copy_n_launch_xlsx-0.2.16.tar.gz
- Upload date:
- Size: 539.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bed6154b361d7ed039ac68394b10c05c7c618e66ba72d27064fb8e16c708991
|
|
| MD5 |
b01950d35c69bb1213ed542d80c3a252
|
|
| BLAKE2b-256 |
edf7901a35153273d22a05c02e2619419cf83c488a070a9d2bf93379ae62c322
|
Provenance
The following attestation bundles were made for copy_n_launch_xlsx-0.2.16.tar.gz:
Publisher:
publish.yml on City-of-Memphis-Wastewater/copy-n-launch-xlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copy_n_launch_xlsx-0.2.16.tar.gz -
Subject digest:
6bed6154b361d7ed039ac68394b10c05c7c618e66ba72d27064fb8e16c708991 - Sigstore transparency entry: 2073208876
- Sigstore integration time:
-
Permalink:
City-of-Memphis-Wastewater/copy-n-launch-xlsx@1f36e4691a137d1cfe35abccf378df013e500320 -
Branch / Tag:
refs/tags/v0.2.16 - Owner: https://github.com/City-of-Memphis-Wastewater
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f36e4691a137d1cfe35abccf378df013e500320 -
Trigger Event:
release
-
Statement type:
File details
Details for the file copy_n_launch_xlsx-0.2.16-py3-none-any.whl.
File metadata
- Download URL: copy_n_launch_xlsx-0.2.16-py3-none-any.whl
- Upload date:
- Size: 587.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27f76e532a6df4e62f4ec316907ae0742e77028e708da27a2f17c6403a126f3d
|
|
| MD5 |
f1c7ac726d17a0a9683de98241a1d765
|
|
| BLAKE2b-256 |
f0243bb0077a013c1f7bcb4bf5dbc0fe99ebb21c60797e380d77cd7c91574f3c
|
Provenance
The following attestation bundles were made for copy_n_launch_xlsx-0.2.16-py3-none-any.whl:
Publisher:
publish.yml on City-of-Memphis-Wastewater/copy-n-launch-xlsx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
copy_n_launch_xlsx-0.2.16-py3-none-any.whl -
Subject digest:
27f76e532a6df4e62f4ec316907ae0742e77028e708da27a2f17c6403a126f3d - Sigstore transparency entry: 2073208906
- Sigstore integration time:
-
Permalink:
City-of-Memphis-Wastewater/copy-n-launch-xlsx@1f36e4691a137d1cfe35abccf378df013e500320 -
Branch / Tag:
refs/tags/v0.2.16 - Owner: https://github.com/City-of-Memphis-Wastewater
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f36e4691a137d1cfe35abccf378df013e500320 -
Trigger Event:
release
-
Statement type: