1.0.2 • Published 2 years ago

react-excel-jspreadsheet v1.0.2

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

ReactExcel

Install

Using npm:

$ npm install --save  react-excel-jspreadsheet

or using yarn:

$ yarn add react-excel-jspreadsheet

功能介绍

类似Excel的React组件,基于jspreadsheet

import React from 'react'
import ReactExcel, { ReactExcelColumn } from 'react-excel-jspreadsheet'

const columns: ReactExcelColumn[] = [
  { type: 'text', title: 'Car', width: 120 },
  { type: 'dropdown', title: 'Make', width: 200, source: [ "Alfa Romeo", "Audi", "Bmw" ] },
  { type: 'calendar', title: 'Available', width: 200, options: { format:'YYYY/MM/DD' } },
  { type: 'image', title: 'Photo', width: 120 },
  { type: 'checkbox', title: 'Stock', width: 80 },
  { type: 'numeric', title: 'Price', width: 100, mask: '$ #.##,00', decimal: ',' },
  { type: 'color', width: 100, render: 'square' },
]

const data = [
  ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
  ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
]

const Base = () => {
  return (
    <ReactExcel data={data}
      columns={columns} />
  )
}

export default Base

API

参数说明类型默认值值说明
data表格数据array--注意是二维数组
csv从此 URL 加载外部 CSV 文件string--
csvHeaders从 CSV 文件加载标题bool--
csvFileName下载方法的默认文件名string--
columns列配置,具体见columnarray--
excelIns实例ref(需要执行实例方法,请先使用一个ref拿到实例)MutableRefObject\<any>--
columnResize列宽调整booltrue
colWidths列宽设置number[]--
colHeaders列标题string[]--
defaultColWidth新列的默认宽度整数false
defaultColAlign新列的默认对齐方式center, left, rightfalse
allowInsertColumn允许插入列booltrue
allowDeleteColumn允许删除列booltrue
allowRenameColumn允许重命名列booltrue
minSpareCols最小备用列数整数--
minDimensions初始表格行列数cols, rows--
minSpareRows最小备用行数整数--
rows行配置Object({ height: 行高 })--
rowResize行高调整boolfalse
allowInsertRow允许插入行booltrue
allowDeleteRow允许删除行booltrue
tableOverflow超出展示滚动条boolfalse
tableHeight强制表格的最大高度CSS String--
tableWidth强制表格的最大宽度CSS String--
allowExport允许导出booltrue
wordWrap允许换行boolfalse
style表格初始化中的单元格样式Object--
fullscreen开启全屏boolfalse
lazyLoading激活延迟加载boolfalse
loadingSpin激活加载中图标boolfalse
pagination分页整数--
paginationOptions每页记录数:例如 25,50,75,100整数数组--
search启用搜索boolfalse
mergeCells合并单元格Record<string, number[]>--比如:{ A2: 2, 1 }表示从A列第2行开始,合并两列一行,B列就是Bx: x, x。注意:需要使用minDimensions强制设置最小表格行列数,不然表格不够使用时可能会报错
nestedHeaders嵌套表头array--参考示例:嵌套表头
onChange更改列值后事件func--
onSelection选中事件func--
onResizeColumn改变列宽func--
onResizeRow改变行高func--
onInsertRow插入行事件func--
onDeleteRow删除行事件func--
onInsertColumn插入列事件func--
onDeleteColumn删除列事件func--
onFocus获得焦点事件func--
onBlur失焦事件func--

column

参数说明类型默认值值说明
type数据类型String:text | numeric | hidden | dropdown | autocomplete | checkbox | radio | calendar | image | color | html--
title列头显示文字String--
width列宽Number--
source下拉框的数据array--
options配置项,比如日期的格式配置Object--

实例方法

参数说明类型说明
getData获取完整或部分表格数据myExcel.getData(bool)@Param boolan onlyHighlighedCells - 仅获取高亮显示的单元格
setData设置表数据myExcel.setData(json)@Param json newData - 新的 json 数据,null 将重新加载内存中的内容
getJson获取 JSON 格式的全部或部分表格数据myExcel.getJson(bool)@Param boolan onlyHighlighedCells - 仅获取高亮显示的单元格
getRowData按数字从一行中获取数据myExcel.getRowData(int)@Param integer rowNumber - 行号
setRowData按数字设置一行数据myExcel.setRowData(int, array)@Param integer rowNumber - 行号,@param array rowData - 行数据
getColumnData按数字从一列中获取数据myExcel.getColumnData(int)@Param integer columnNumber - 列号
setColumnData按数字设置一列数据myExcel.setColumnData(int, array)@Param integer columnNumber - 列号,@param array colData - 列数据
setMerge合并单元格myExcel.setMerge(string, int, int)@Param string columnName - 列名,例如 A1。 @Param integer colspan - 列数 @Param integer rowspan - 行数
getMerge获取合并单元格属性myExcel.getMerge(string)@Param string columnName - 列名,例如 A1。
removeMerge按列名销毁合并myExcel.removeMerge(string)@Param string columnName - 列名,例如 A1。
destroyMerged销毁所有合并的单元格myExcel.destroyMerged()
getValueFromCoords从坐标中获取值myExcel.getValueFromCoords(x, y)
setValueFromCoords根据坐标设置值myExcel.setValueFromCoords(x, y, string, bool)@Param string Value - 单元格的新值,@Param bool force - 更新只读列
getWidth获取当前列宽myExcel.getWidth(integer)@Param integer columnNumber - 从零开始的列号
setWidth更改列宽myExcel.setWidth(integer, string)@Param integer columnNumber - 从零开始的列号,@Param string newColumnWidth - 新列宽
getHeight获取当前行高myExcel.getHeight(integer)@Param integer rowNumber - 从零开始的行号
setHeight更改行高myExcel.setHeight(integer, string)@Param integer rowNumber - 从零开始的行号,@Param string newRowHeight- 新行高
getHeader通过列号获取当前标题myExcel.getHeader(integer)@Param integer columnNumber - 从零开始的列号
getHeaders获取所有标题标题myExcel.getHeaders()
setHeader按列更改标题myExcel.setHeader(integer, string)@Param integer columnNumber - 从零开始的列号,@Param string columnTitle - 新标题标题
getConfig获取表定义myExcel.getConfig()
insertColumn添加一个新列myExcel.insertColumn(mixed, integer, boolean, object)@param mixed - 要添加的列数或要在单个列中添加的数据,@param int columnNumber - 要创建的列数,@param boolean insertBefore,@param object properties - 列属性
deleteColumn按数字删除列myExcel.deleteColumn(integer, integer)@Param integer columnNumber - 从零开始应该排除哪一列,@param integer numOfColumns - 要从参考列中排除的列数
moveColumn改变列位置myExcel.moveColumn(integer, integer)@Param integer columnPosition - 原始位置,@Param integer newColumnPosition - 新位置
insertRow添加新行myExcel.insertRow(mixed, integer, boolean)@Param mixed - 要插入的空白行数或带有新行数据的单个数组,@Param integer rowNumber - 引用行号,@param boolean insertBefore
deleteRow按数字删除行myExcel.deleteRow(integer, integer)@Param integer rowNumber - 从零开始应该排除哪一行,@Param integer numOfRows - 要排除的行数
moveRow改变行位置myExcel.moveRow(integer, integer)@Param integer rowPosition - 原始位置,@Param integer newRowPosition - 新位置
download以 CSV 文件的形式获取当前数据myExcel.download(bool)@Param bool - true 下载解析的公式。
fullscreen切换表格全屏模式myExcel.fullscreen(bool)@Param boolan fullscreen - 将全屏状态定义为 true 或 false
search在表中搜索,启用搜索功能才有效。myExcel.search(string)@Param string - 搜索关键字
resetSearch重置搜索myExcel.resetSearch()
whichPage展示的页,仅在开启分页时有效myExcel.whichPage()
page转到页码,仅在开启分页时有效myExcel.page(integer)
undo撤销myExcel.undo()
redo重做myExcel.redo()