Skip to main content

ExcelViewer

A React component for rendering Excel (.xlsx) spreadsheets as styled HTML tables with sheet tab navigation. Uses SheetJS (xlsx) for parsing.

Import

import {
BaseExcelViewer,
ExcelViewer,
} from "@osdk/react-components/experimental/excel-viewer";
  • ExcelViewer — Primary component for OSDK usage. Accepts an OSDK Media object, parses the spreadsheet, and renders it.
  • BaseExcelViewer — Lower-level component that accepts a pre-parsed ParsedSpreadsheet object.

Usage

With OSDK Media

import { ExcelViewer } from "@osdk/react-components/experimental/excel-viewer";

<ExcelViewer media={report.spreadsheet} />;

With parsed data

import { BaseExcelViewer } from "@osdk/react-components/experimental/excel-viewer";

<BaseExcelViewer
spreadsheet={{
sheets: [
{
name: "Sheet1",
rows: [
["Name", "Age", "City"],
["Alice", "30", "New York"],
["Bob", "25", "London"],
],
},
],
}}
/>;

Props

BaseExcelViewerProps

PropTypeRequiredDescription
spreadsheetParsedSpreadsheetYesParsed spreadsheet data
classNamestringNoCSS class applied to the root element

ExcelViewerMediaProps

PropTypeRequiredDescription
mediaMediaYesThe OSDK Media object to fetch Excel from
classNamestringNoCSS class applied to the root element

ParsedSpreadsheet

FieldTypeDescription
sheetsreadonly SheetData[]All workbook sheets

SheetData

FieldTypeDescription
namestringSheet name
rowsreadonly (readonly string[])[]Rows of cell values as strings

Features

  • Renders spreadsheet data as a styled HTML table
  • Sheet tab navigation at the bottom for multi-sheet workbooks
  • Sticky header row
  • First row treated as column headers

Theming

:root {
--osdk-excel-viewer-bg: var(--osdk-background-primary);
--osdk-excel-viewer-border: var(--osdk-surface-border);
--osdk-excel-viewer-header-bg: var(--osdk-background-secondary);
--osdk-excel-viewer-cell-border: var(--osdk-surface-border-color-default);
--osdk-excel-viewer-tab-bg: var(--osdk-background-secondary);
--osdk-excel-viewer-tab-active-bg: var(--osdk-background-primary);
--osdk-excel-viewer-tab-border: var(--osdk-surface-border);
}