Google Sheets Data to Excel (CSV) Converter
Paste your data from Google Sheets into the text area below. For best results, ensure your data is tab-separated or comma-separated. The tool will convert it into a downloadable CSV file, which can be easily opened in Microsoft Excel.
Success! Your data has been converted and downloaded as "${filename}".
Detected delimiter: ${detectedDelimiter}-separated.
`; downloadPdfButton.style.display = 'block'; // Show PDF button // Store data for PDF generation resultArea.dataset.originalDataPreview = rawData.substring(0, 500) + (rawData.length > 500 ? '...' : ''); // Store a preview resultArea.dataset.outputFileName = filename; resultArea.dataset.detectedDelimiter = detectedDelimiter; } /** * Clears the input area, hides the result area, and hides the PDF button. */ function clearAll() { const sheetDataInput = document.getElementById('sheetDataInput'); const resultArea = document.getElementById('resultArea'); const downloadPdfButton = document.getElementById('downloadPdfButton'); if (sheetDataInput) { sheetDataInput.value = ''; } if (resultArea) { resultArea.style.display = 'none'; resultArea.innerHTML = ''; // Clear stored data for PDF delete resultArea.dataset.originalDataPreview; delete resultArea.dataset.outputFileName; delete resultArea.dataset.detectedDelimiter; } if (downloadPdfButton) { downloadPdfButton.style.display = 'none'; } } /** * Generates a PDF summary of the conversion action. */ function generatePdf() { // Check if jsPDF library is loaded if (typeof window.jspdf === 'undefined' || typeof window.jspdf.jsPDF === 'undefined') { console.error('jsPDF library not loaded. Cannot generate PDF.'); const resultArea = document.getElementById('resultArea'); if (resultArea) { resultArea.innerHTML = 'PDF generation failed. Library not loaded.
'; } return; } const { jsPDF } = window.jspdf; const doc = new jsPDF(); const resultArea = document.getElementById('resultArea'); // Retrieve stored data const originalDataPreview = resultArea.dataset.originalDataPreview || 'No data entered.'; const outputFileName = resultArea.dataset.outputFileName || 'N/A'; const detectedDelimiter = resultArea.dataset.detectedDelimiter || 'N/A'; const conversionDate = new Date().toLocaleString(); let yOffset = 20; // Title doc.setFontSize(24); doc.setTextColor(44, 62, 80); doc.text("Google Sheets to Excel Conversion Summary", 105, yOffset, { align: 'center' }); yOffset += 20; // Summary details doc.setFontSize(14); doc.setTextColor(51, 51, 51); doc.text(`Conversion Date: ${conversionDate}`, 20, yOffset); yOffset += 10; doc.text(`Output File Name: ${outputFileName}`, 20, yOffset); yOffset += 10; doc.text(`Detected Delimiter: ${detectedDelimiter}`, 20, yOffset); yOffset += 20; // Original Data Preview doc.setFontSize(12); doc.text("Original Data Preview (first 500 characters):", 20, yOffset); yOffset += 10; const dataLines = doc.splitTextToSize(originalDataPreview, 170); // Max width 170 doc.text(dataLines, 20, yOffset); yOffset += (dataLines.length * 7); // Adjust yOffset based on lines of text if (yOffset > 250) { // Simple page break check doc.addPage(); yOffset = 20; } // Disclaimer/Note for PDF (as per spec, only if relevant, and this is informational) yOffset += 20; doc.setFontSize(10); doc.setTextColor(100, 100, 100); const noteText = "Note: This PDF confirms the conversion action and provides a preview of the input data. The full converted data is available in the downloaded CSV file."; const splitNote = doc.splitTextToSize(noteText, 170); doc.text(splitNote, 20, yOffset); doc.save("Conversion_Summary.pdf"); }