myliang / x-spreadsheet

The project has been migrated to @wolf-table/table https://github.com/wolf-table/table
https://myliang.github.io/x-spreadsheet
MIT License
13.96k stars 1.67k forks source link

Load Json Data Or Excel Data #55

Open Ponvijaykumar opened 5 years ago

Ponvijaykumar commented 5 years ago

How to load existing excel date or json data

myliang commented 5 years ago
new Spreadsheet("#x-spreadsheet-demo")
  .loadData({}) // load data (json data)
  .change(data => {
    // save data to db
  });
Ponvijaykumar commented 5 years ago

Possible to load existing cvs or excel file.

dodumosu commented 5 years ago

use a library to read in the CSV or Excel data. Some suggestions:

wangzhedong commented 5 years ago

加载存在数据库里的数据,你把数据转成demo中的数据格式不就可以了嘛

Leannechn commented 4 years ago

加载存在数据库里的数据,你把数据转成demo中的数据格式不就可以了嘛

demo中的数据格式 中的 demo 在哪里

SheetJSDev commented 4 years ago

https://docs.sheetjs.com/docs/demos/grid#x-spreadsheet discusses in more detail

Hosted script https://cdn.sheetjs.com/xspreadsheet/xlsxspread.min.js

Script exposes a function stox. Usage:

// var grid = x_spreadsheet(...);
var wb = XLSX.read(ab);
var new_data = stox(wb); // generate x-spreadsheet data
grid.loadData(new_data); // load data into x-spreadsheet

The SheetJS documentation includes examples for how to get the ab data. For example, data can be downloaded using fetch:

// const grid = x_spreadsheet(...);
(async() => {
  const url = "https://sheetjs.com/pres.numbers";
  const ab = await (await fetch(url)).arrayBuffer();
  grid.loadData(stox(XLSX.read(ab)));
})();
nbao commented 1 year ago

Hello how can I add a custom button to the toolbar to import/export an excel file with https://github.com/SheetJS/sheetjs

emmanueladk commented 3 weeks ago

@SheetJSDev thank you for providing instructions, i'm facing a problem. after using xtos, i using sheet_to_html and would like it to display exact value of the column and not the formula, how to achieve this ?

here is my code :


const { xtos, stox } = require('./xs');
const XLSX = require('xlsx');
const { HyperFormula } = require('hyperformula');

var data = [
    { "name": "sheet2", "freeze": "A1", "styles": [], "merges": [], "rows": { "0": { "cells": { "0": { "text": "noms" }, "1": { "text": "value" } } }, "1": { "cells": { "0": { "text": "titre a" }, "1": { "text": "10000" } } }, "2": { "cells": { "0": { "text": "titre b" }, "1": { "text": "5000" } } }, "3": { "cells": { "0": { "text": "titre c" }, "1": { "text": "45495" } } }, "4": { "cells": { "0": { "text": "total" }, "1": { "text": "=sum(b2,b4)*0" } } }, "len": 100 }, "cols": { "len": 26 }, "validations": [], "autofilter": {} }
]

let workbook = xtos(data);

let elements = []
let output = [];
/* loop through the worksheet names in order */
for (var er in workbook.SheetNames) {
    //workbook.SheetNames.forEach(name => {
    var name = workbook.SheetNames[er];
    const worksheet = workbook.Sheets[name];

    const html = XLSX.utils.sheet_to_html(worksheet);

    /* add a header with the title name followed by the table */
    output.push(`<H3>${name}</H3>${html}`);

    console.log(html)
};```