1.0.8 • Published 9 months ago

react-spread-sheet-excel v1.0.8

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

React-spread-sheet-excel

A light weight component to Render large lists of input boxes in the table using React JS and Redux, Render a table with a large number of rows and columns.

npm version Downloads

  • Can render a large number of input boxes in the table
  • Light Weight
  • Calculations Support, value should starts with "="
  • Supports calculations in Excel cells (= 2 A2 + (B2 C4))
  • Customizable header values - (Do not pass numbers in header values, will affect calc)
  • Resize columns
  • Can Use as a Spreadsheet or Excel with react
  • Read-only mode
  • Export to CSV support
  • Move between cells using tab/shift+tab or arrow Keys keys on the keyboard
  • Sticky Headers
  • 100% unit test coverage

Getting Started

Input data format

[
  [{value: 1},{value: 1},{value: "a"},{value: "b"},{value: "d"}]
]
npm install react-spread-sheet-excel

demo

Live demo

alt text

import React, { useRef, useState } from "react";
import Sheet, { SheetRef } from "./lib";
import packageConf from "../package.json";

const createData = () => {
  const val: any[][] = [];
  for (let i = 0; i < 2000; i++) {
    val.push(Array.from({ length: 40 }, () => Math.floor(Math.random() * 10)));
  }
  return val;
};
function App() {
  const [state] = useState<any[][]>(createData());
  const childRef = useRef<SheetRef>(null);
  const onChange = (i: number, j: number, value: string) => {
    //Do not try to update state with this action, it will slow down your application
    console.log(`Value Updated at ${j}, ${j}`, value);
  };
  const getData = () => {
    console.log("Updated Data", childRef?.current?.getData()); 
  };

  return (
    <div>
      <div>
        <button onClick={getData}>Get Updated data</button>
      </div>
      <div>
        <Sheet data={state} onChange={onChange} ref={childRef} />
      </div>
    </div>
  );
}

export default App;

props

PropDescriptionDefaultMandatorytype
dataArray of array with values (matrix)[[]]Noany
onChangeCalls when a change is detected in input boxes, Do not set render component when value changes, the component should be uncontrolledNo
resizeshow column resize optionfalseNoboolean
hideXAxisHeaderShow serial numbers in X axisfalseNoboolean
hideYAxisHeaderShow serial numbers in Y axisfalseNoboolean
headerValuesarray of header values, Number in header values could affect calculationsalphabetsNostring[]

Ref

RefDescription
getDataGet updated data from sheet
setDataSet new data to sheet

Sojin Antony

"Buy Me A Coffee"

Acknowledgments

  • React-intersection-observer
  • Redux, React Redux
1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago