🔥 Secure your data exports - encrypt and password protect sensitive CSV and XLSX files
The Office Open XML format provides a standard for encryption and password protection
Works with Excel, Numbers, and LibreOffice Calc
Install the CLI
npm install -g secure-spreadsheet
Convert a CSV into password-protected, AES-256 encrypted XLSX
cat input.csv | secure-spreadsheet --password secret > output.xlsx
Protect an existing XLSX
cat input.xlsx | secure-spreadsheet --password secret --input-format xlsx > output.xlsx
Many languages don’t have libraries to create encrypted spreadsheets. Luckily, we can use the CLI.
require "csv"
csv_str = CSV.generate do |csv|
csv << ["awesome", "csv"]
end
result = IO.popen("secure-spreadsheet --password secret", "r+") do |io|
io.write(csv_str)
io.close_write
io.read
end
File.open("output.xlsx", "w") { |f| f.write(result) }
An alternative approach to secure your data is to create a password-protected ZIP archive. However, this leaves the data exposed after it’s unzipped.
The content type for XLSX is application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.
Thanks to xlsx-populate for providing the encryption and password protection.
View the changelog
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features