mirror of
https://github.com/open-webui/open-webui
synced 2024-12-28 23:02:25 +00:00
fix: table export
This commit is contained in:
parent
0f6d302760
commit
2875326015
@ -34,16 +34,27 @@
|
||||
const exportTableToCSVHandler = (token, tokenIdx = 0) => {
|
||||
console.log('Exporting table to CSV');
|
||||
|
||||
// Extract header row text and escape for CSV.
|
||||
const header = token.header.map((headerCell) => `"${headerCell.text.replace(/"/g, '""')}"`);
|
||||
|
||||
// Create an array for rows that will hold the mapped cell text.
|
||||
const rows = token.rows.map((row) =>
|
||||
row.map((cell) => cell.tokens.map((token) => token.text).join(''))
|
||||
row.map((cell) => {
|
||||
// Map tokens into a single text
|
||||
const cellContent = cell.tokens.map((token) => token.text).join('');
|
||||
// Escape double quotes and wrap the content in double quotes
|
||||
return `"${cellContent.replace(/"/g, '""')}"`;
|
||||
})
|
||||
);
|
||||
|
||||
// Combine header and rows
|
||||
const csvData = [header, ...rows];
|
||||
|
||||
// Join the rows using commas (,) as the separator and rows using newline (\n).
|
||||
const csvContent = rows.map((row) => row.join(',')).join('\n');
|
||||
const csvContent = csvData.map((row) => row.join(',')).join('\n');
|
||||
|
||||
// Log rows and CSV content to ensure everything is correct.
|
||||
console.log(rows);
|
||||
console.log(csvData);
|
||||
console.log(csvContent);
|
||||
|
||||
// To handle Unicode characters, you need to prefix the data with a BOM:
|
||||
@ -100,7 +111,7 @@
|
||||
{#each token.header as header, headerIdx}
|
||||
<th
|
||||
scope="col"
|
||||
class="!px-3 !py-1.5 cursor-pointer select-none border border-gray-50 dark:border-gray-850"
|
||||
class="!px-3 !py-1.5 cursor-pointer border border-gray-50 dark:border-gray-850"
|
||||
style={token.align[headerIdx] ? '' : `text-align: ${token.align[headerIdx]}`}
|
||||
>
|
||||
<div class="flex flex-col gap-1.5 text-left">
|
||||
|
Loading…
Reference in New Issue
Block a user