{"_id":"@alfxjx/x-data-spreadsheet","_rev":"1-b96965aaa477ea141a1323270e8fd673","name":"@alfxjx/x-data-spreadsheet","dist-tags":{"latest":"1.1.8"},"versions":{"1.1.7":{"name":"@alfxjx/x-data-spreadsheet","version":"1.1.7","keywords":["javascript","spreadsheet","canvas"],"author":{"name":"alfxjx"},"license":"MIT","_id":"@alfxjx/x-data-spreadsheet@1.1.7","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"nyc":{"all":true,"exclude":["**/*.spec.js"],"include":["src/core/*.js"]},"dist":{"shasum":"2e5d0d7dfca148cfc7ca3c14bf08ff996c3ca370","tarball":"https://registry.npmjs.org/@alfxjx/x-data-spreadsheet/-/x-data-spreadsheet-1.1.7.tgz","fileCount":110,"integrity":"sha512-cnWksDJUN0zrr5P9e30U/oAZ5eaSnlQCj0qzGEXaAWZDxoNWJvT6PiHsn9padk6ifaTiQdcODfJbukxP9IUfzg==","signatures":[{"sig":"MEUCIQCKf9IGIr9IgZBH1ycez22jE6KQrfvObInT+xaf9vmV6AIgeJmcgkWZ7c5NOA32Q4SP/DXUFL63XWLcZ2U3dkhjV9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1399509},"main":"src/index.js","types":"src/index.d.ts","gitHead":"7c42020b85b536a82f8a3a01432e805fd4bbf4c1","scripts":{"dev":"webpack-dev-server --open --config build/webpack.dev.js","lint":"./node_modules/eslint/bin/eslint.js src","test":"nyc ./node_modules/mocha/bin/mocha --require @babel/register test/*","build":"webpack --config build/webpack.prod.js","coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t 31ecdb12-8ecb-46f7-a486-65c2516307dd","postinstall":"opencollective-postinstall","build-locale":"webpack --config build/webpack.locale.js"},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"collective":{"url":"https://opencollective.com/x-spreadsheet","type":"opencollective"},"repository":{"url":"https://gitee.com/alfxjx/x-spreadsheet.git","type":"git"},"_npmVersion":"10.5.2","description":"a javascript xpreadsheet","directories":{},"_nodeVersion":"20.13.1","dependencies":{"opencollective":"^1.0.3","opencollective-postinstall":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","less":"^3.8.1","mocha":"^5.2.0","eslint":"^6.8.0","codecov":"^3.3.0","webpack":"^4.29.6","css-loader":"^1.0.0","@babel/core":"^7.3.4","file-loader":"^2.0.0","less-loader":"^4.1.0","webpack-cli":"^3.1.0","babel-loader":"^8.0.5","style-loader":"^0.23.0","webpack-merge":"^4.1.4","@babel/register":"^7.0.0","@babel/preset-env":"^7.3.4","webpack-dev-server":"^3.10.2","html-webpack-plugin":"^3.2.0","clean-webpack-plugin":"^0.1.19","eslint-plugin-import":"^2.14.0","mini-css-extract-plugin":"^0.4.4","eslint-config-airbnb-base":"^13.1.0","@babel/plugin-proposal-class-properties":"^7.4.4"},"_npmOperationalInternal":{"tmp":"tmp/x-data-spreadsheet_1.1.7_1733362155963_0.5350739423872746","host":"s3://npm-registry-packages"}},"1.1.8":{"name":"@alfxjx/x-data-spreadsheet","version":"1.1.8","description":"a javascript xpreadsheet","types":"src/index.d.ts","main":"src/index.js","author":{"name":"alfxjx"},"license":"MIT","repository":{"type":"git","url":"https://gitee.com/alfxjx/x-spreadsheet.git"},"nyc":{"all":true,"include":["src/core/*.js"],"exclude":["**/*.spec.js"]},"scripts":{"dev":"webpack-dev-server --open --config build/webpack.dev.js","build":"webpack --config build/webpack.prod.js","build-locale":"webpack --config build/webpack.locale.js","lint":"./node_modules/eslint/bin/eslint.js src","test":"nyc ./node_modules/mocha/bin/mocha --require @babel/register test/*","coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t 31ecdb12-8ecb-46f7-a486-65c2516307dd","postinstall":"opencollective-postinstall"},"keywords":["javascript","spreadsheet","canvas"],"devDependencies":{"@babel/core":"^7.3.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.3.4","@babel/register":"^7.0.0","babel-loader":"^8.0.5","clean-webpack-plugin":"^0.1.19","codecov":"^3.3.0","css-loader":"^1.0.0","eslint":"^6.8.0","eslint-config-airbnb-base":"^13.1.0","eslint-plugin-import":"^2.14.0","file-loader":"^2.0.0","html-webpack-plugin":"^3.2.0","less":"^3.8.1","less-loader":"^4.1.0","mini-css-extract-plugin":"^0.4.4","mocha":"^5.2.0","nyc":"^13.3.0","style-loader":"^0.23.0","webpack":"^4.29.6","webpack-cli":"^3.1.0","webpack-dev-server":"^3.10.2","webpack-merge":"^4.1.4"},"dependencies":{"opencollective":"^1.0.3","opencollective-postinstall":"^2.0.2"},"collective":{"type":"opencollective","url":"https://opencollective.com/x-spreadsheet"},"_id":"@alfxjx/x-data-spreadsheet@1.1.8","gitHead":"aac4266adf9d02015cbd7b222c3120aa1efa5b0f","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-jw5WkIoLR3EFgwA8H61oynlA5Tt9zn6raM82pe4BmWueyNz8ahUPyacBhTf9BFmlIWoCxoV78if8R7C/8hNQGg==","shasum":"782bddf6d4830e7f09f8c1f90804451b15400800","tarball":"https://registry.npmjs.org/@alfxjx/x-data-spreadsheet/-/x-data-spreadsheet-1.1.8.tgz","fileCount":110,"unpackedSize":1399552,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7gwocvz2byS5mIH6RZb2DVJULoM0Spdr+4XFaXIx6RwIgDD0hksxMhEmRefITse5mxaqhaR3UQkyYj1Fu58N4kBk="}]},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"directories":{},"maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/x-data-spreadsheet_1.1.8_1733363352882_0.9847502253032339"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-05T01:29:15.852Z","modified":"2024-12-05T01:49:13.278Z","1.1.7":"2024-12-05T01:29:16.269Z","1.1.8":"2024-12-05T01:49:13.140Z"},"author":{"name":"alfxjx"},"license":"MIT","keywords":["javascript","spreadsheet","canvas"],"repository":{"type":"git","url":"https://gitee.com/alfxjx/x-spreadsheet.git"},"description":"a javascript xpreadsheet","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"readme":"# x-spreadsheet\r\n\r\n[![npm package](https://img.shields.io/npm/v/x-data-spreadsheet.svg)](https://www.npmjs.org/package/x-data-spreadsheet)\r\n[![NPM downloads](http://img.shields.io/npm/dm/x-data-spreadsheet.svg)](https://npmjs.org/package/x-data-spreadsheet)\r\n[![NPM downloads](http://img.shields.io/npm/dt/x-data-spreadsheet.svg)](https://npmjs.org/package/x-data-spreadsheet)\r\n[![Build passing](https://travis-ci.org/myliang/x-spreadsheet.svg?branch=master)](https://travis-ci.org/myliang/x-spreadsheet)\r\n[![codecov](https://codecov.io/gh/myliang/x-spreadsheet/branch/master/graph/badge.svg)](https://codecov.io/gh/myliang/x-spreadsheet)\r\n![GitHub](https://img.shields.io/github/license/myliang/x-spreadsheet.svg)\r\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/myliang/x-spreadsheet.svg)\r\n[![Join the chat at https://gitter.im/x-datav/spreadsheet](https://badges.gitter.im/x-datav/spreadsheet.svg)](https://gitter.im/x-datav/spreadsheet?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\n> A web-based JavaScript spreadsheet\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://github.com/myliang/x-spreadsheet\">\r\n    <img width=\"100%\" src=\"https://raw.githubusercontent.com/myliang/x-spreadsheet/master/docs/demo.png\">\r\n  </a>\r\n</p>\r\n\r\n## Document\r\n* en\r\n* [zh-cn 中文](https://hondrytravis.github.io/x-spreadsheet-doc/)\r\n\r\n## CDN\r\n```html\r\n<link rel=\"stylesheet\" href=\"https://unpkg.com/x-data-spreadsheet@1.1.4/dist/xspreadsheet.css\">\r\n<script src=\"https://unpkg.com/x-data-spreadsheet@1.1.4/dist/xspreadsheet.js\"></script>\r\n\r\n<script>\r\n   x_spreadsheet('#xspreadsheet');\r\n</script>\r\n```\r\n\r\n## NPM\r\n\r\n```shell\r\nnpm install x-data-spreadsheet\r\n```\r\n\r\n```html\r\n<div id=\"x-spreadsheet-demo\"></div>\r\n```\r\n\r\n```javascript\r\nimport Spreadsheet from \"x-data-spreadsheet\";\r\n// If you need to override the default options, you can set the override\r\n// const options = {};\r\n// new Spreadsheet('#x-spreadsheet-demo', options);\r\nconst s = new Spreadsheet(\"#x-spreadsheet-demo\")\r\n  .loadData({}) // load data\r\n  .change(data => {\r\n    // save data to db\r\n  });\r\n\r\n// data validation\r\ns.validate()\r\n```\r\n\r\n```javascript\r\n// default options\r\n{\r\n  mode: 'edit', // edit | read\r\n  showToolbar: true,\r\n  showGrid: true,\r\n  showContextmenu: true,\r\n  view: {\r\n    height: () => document.documentElement.clientHeight,\r\n    width: () => document.documentElement.clientWidth,\r\n  },\r\n  row: {\r\n    len: 100,\r\n    height: 25,\r\n  },\r\n  col: {\r\n    len: 26,\r\n    width: 100,\r\n    indexWidth: 60,\r\n    minWidth: 60,\r\n  },\r\n  style: {\r\n    bgcolor: '#ffffff',\r\n    align: 'left',\r\n    valign: 'middle',\r\n    textwrap: false,\r\n    strike: false,\r\n    underline: false,\r\n    color: '#0a0a0a',\r\n    font: {\r\n      name: 'Helvetica',\r\n      size: 10,\r\n      bold: false,\r\n      italic: false,\r\n    },\r\n  },\r\n}\r\n```\r\n\r\n## import | export xlsx\r\n\r\nhttps://github.com/SheetJS/sheetjs/tree/master/demos/xspreadsheet#saving-data\r\n\r\nthanks https://github.com/SheetJS/sheetjs\r\n\r\n## Bind events\r\n```javascript\r\nconst s = new Spreadsheet(\"#x-spreadsheet-demo\")\r\n// event of click on cell\r\ns.on('cell-selected', (cell, ri, ci) => {});\r\ns.on('cells-selected', (cell, { sri, sci, eri, eci }) => {});\r\n// edited on cell\r\ns.on('cell-edited', (text, ri, ci) => {});\r\n```\r\n\r\n## update cell-text\r\n```javascript\r\nconst s = new Spreadsheet(\"#x-spreadsheet-demo\")\r\n// cellText(ri, ci, text, sheetIndex = 0)\r\ns.cellText(5, 5, 'xxxx').cellText(6, 5, 'yyy').reRender();\r\n```\r\n\r\n## get cell and cell-style\r\n```javascript\r\nconst s = new Spreadsheet(\"#x-spreadsheet-demo\")\r\n// cell(ri, ci, sheetIndex = 0)\r\ns.cell(ri, ci);\r\n// cellStyle(ri, ci, sheetIndex = 0)\r\ns.cellStyle(ri, ci);\r\n```\r\n\r\n## Internationalization\r\n```javascript\r\n// npm \r\nimport Spreadsheet from 'x-data-spreadsheet';\r\nimport zhCN from 'x-data-spreadsheet/dist/locale/zh-cn';\r\n\r\nSpreadsheet.locale('zh-cn', zhCN);\r\nnew Spreadsheet(document.getElementById('xss-demo'));\r\n```\r\n```html\r\n<!-- Import via CDN -->\r\n<link rel=\"stylesheet\" href=\"https://unpkg.com/x-data-spreadsheet@1.1.4/dist/xspreadsheet.css\">\r\n<script src=\"https://unpkg.com/x-data-spreadsheet@1.1.4/dist/xspreadsheet.js\"></script>\r\n<script src=\"https://unpkg.com/x-data-spreadsheet@1.1.4/dist/locale/zh-cn.js\"></script>\r\n\r\n<script>\r\n  x_spreadsheet.locale('zh-cn');\r\n</script>\r\n```\r\n\r\n## Features\r\n  - Undo & Redo\r\n  - Paint format\r\n  - Clear format\r\n  - Format\r\n  - Font\r\n  - Font size\r\n  - Font bold\r\n  - Font italic\r\n  - Underline\r\n  - Strike\r\n  - Text color\r\n  - Fill color\r\n  - Borders\r\n  - Merge cells\r\n  - Align\r\n  - Text wrapping\r\n  - Freeze cell\r\n  - Functions\r\n  - Resize row-height, col-width\r\n  - Copy, Cut, Paste\r\n  - Autofill\r\n  - Insert row, column\r\n  - Delete row, column\r\n  - hide row, column\r\n  - multiple sheets\r\n  - print\r\n  - Data validations\r\n\r\n## Development\r\n\r\n```sheel\r\ngit clone https://github.com/myliang/x-spreadsheet.git\r\ncd x-spreadsheet\r\nnpm install\r\nnpm run dev\r\n```\r\n\r\nOpen your browser and visit http://127.0.0.1:8080.\r\n\r\n## Browser Support\r\n\r\nModern browsers(chrome, firefox, Safari).\r\n\r\n## LICENSE\r\n\r\nMIT\r\n","readmeFilename":"readme.md"}