Serializing CSV
components/demo.tsx
'use client';
import React from 'react';
import { Plate } from '@udecode/plate/react';
import { editorPlugins } from '@/components/editor/plugins/editor-plugins';
import { useCreateEditor } from '@/components/editor/use-create-editor';
import { Editor, EditorContainer } from '@/components/plate-ui/editor';
import { DEMO_VALUES } from './values/demo-values';
export default function Demo({ id }: { id: string }) {
const editor = useCreateEditor({
plugins: [...editorPlugins],
value: DEMO_VALUES[id],
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Installation
npm install @udecode/plate-csv
Usage
CSV -> Slate
import { CsvPlugin } from '@udecode/plate-csv';
const plugins = [
// ...otherPlugins,
CsvPlugin,
];
Plugins
CsvPlugin
- Default:
0.25
(25% of rows can contain errors) - Default:
{ header: true }
(first row treated as header) - See PapaParse documentation
The tolerance for errors in the CSV data (percentage in decimal form).
Options for the PapaParse library.
API
editor.api.csv.deserialize
- Default:
0.25
- Default:
{ header: true }
- See PapaParse documentation
The editor instance.
The CSV data string to be deserialized.
Percentage in decimal form for allowed errors (0 to ∞).
Options for the PapaParse library.
Creates a table representation of the CSV data:
- Headers (if present) become the first row
- Each CSV row becomes a table row
- Uses plugins:
ParagraphPlugin
,TablePlugin
,TableCellHeaderPlugin
,TableRowPlugin
, andTableCellPlugin