Here is how you can download to an Excel file directly from your browser by using SheetJS:
In Native Libraries, add:
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<script>
function exportToExcel(data, filename) {
// Create a new workbook
const workbook = XLSX.utils.book_new();
// Convert data (array of objects) to a worksheet
const worksheet = XLSX.utils.json_to_sheet(data);
// Append the worksheet to the workbook
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
// Write the workbook and trigger a download
XLSX.writeFile(workbook, filename || "data.xlsx");
}
</script>
In your form:
import anvil.js
data = [
{"name": "Alice", "age": 25, "email": "alice@example.com"},
{"name": "Bob", "age": 30, "email": "bob@example.com"},
]
anvil.js.call_js("exportToExcel", data, "data.xlsx")