Hướng dẫn sheetjs xlsx to json - sheetjs xlsx sang json

Tôi đang cố gắng chuyển đổi tệp XLSX đã tải lên JSON bằng cách sử dụng //github.com/bgrins/filereader.js để xử lý tải lên và //github.com/sheetjs để chuyển đổi tệp thành json. Đây là mã của tôi:

var opts = {
  dragClass : 'drag',
  on: {
    load: function[e, file] {
        var result      = e.target.result;
        var xlsread     = XLSX.read[result, {type: 'binary'}];
        var xlsjson     = XLSX.utils.sheet_to_json[xlsread.Sheets.Sheet1];
        console.log[xlsread,xlsjson];
    }
  }
};

$["#file-input, #dropzone"].fileReaderJS[opts];

Tất cả những gì tôi nhận được là một mảng trống

Bất kì lời đề nghị nào?

hỏi ngày 27 tháng 6 năm 2020 lúc 15:35Jun 27, 2020 at 15:35

OK, tôi đã giải quyết nó đặt đầu ra làm bộ đệm mảng. Mã làm việc:

var opts = {
  readAsDefault: 'ArrayBuffer',
    dragClass : 'drag',
    on: {
    load: function[e, file] {
        var result      = new Uint8Array[e.target.result];
        var xlsread     = XLSX.read[result, {type: 'array'}];
        var xlsjson     = XLSX.utils.sheet_to_json[xlsread.Sheets.Sheet1];
        console.log[xlsread,xlsjson];
    }
  }
};

$["#file-input, #dropzone"].fileReaderJS[opts];

Đã trả lời ngày 27 tháng 6 năm 2020 lúc 15:50Jun 27, 2020 at 15:50

SheetJS trình bày một giao diện JS đơn giản hoạt động với "mảng mảng" và "mảng của các đối tượng JS". Các hàm API là các khối xây dựng nên được kết hợp với các API JS khác để giải quyết các vấn đề.

Các cuộc thảo luận tập trung vào tư duy giải quyết vấn đề. Chi tiết API được đề cập trong các phần khác của tài liệu.

Mục tiêu của ví dụ này là tạo ra một cuốn sách bài tập XLSX của các tên và sinh nhật của Tổng thống Hoa Kỳ. Nhấn vào đây để nhảy đến bản demo trực tiếp.

Có được dữ liệu

Dữ liệu thô

Dữ liệu thô có sẵn ở dạng JSON. Để thuận tiện, nó đã được nhân đôi ở đây

Có được dữ liệu đơn giản với

var opts = {
  readAsDefault: 'ArrayBuffer',
    dragClass : 'drag',
    on: {
    load: function[e, file] {
        var result      = new Uint8Array[e.target.result];
        var xlsread     = XLSX.read[result, {type: 'array'}];
        var xlsjson     = XLSX.utils.sheet_to_json[xlsread.Sheets.Sheet1];
        console.log[xlsread,xlsjson];
    }
  }
};

$["#file-input, #dropzone"].fileReaderJS[opts];
4:

const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];

Dữ liệu thô là một mảng các đối tượng. Đây là dữ liệu cho John Adams:

{
"id": { /* [data omitted] */ },
"name": {
"first": "John", // [{
name: row.name.first + " " + row.name.last,
birthday: row.bio.birthday
}]];

Kết quả là một mảng các đối tượng "đơn giản" không có làm tổ:

[
{ name: "George Washington", birthday: "1732-02-22" },
{ name: "John Adams", birthday: "1735-10-19" },
// ... one row per President
]

Tạo một sổ làm việc

Với bộ dữ liệu được làm sạch,

const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
3 tạo ra một bảng tính:

const worksheet = XLSX.utils.json_to_sheet[rows];

const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
4 tạo ra một sổ làm việc mới và
const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
5 nối một bảng tính vào sổ làm việc. Bảng tính mới sẽ được gọi là "Ngày":

const workbook = XLSX.utils.book_new[];
XLSX.utils.book_append_sheet[workbook, worksheet, "Dates"];

Dọn dẹp sổ làm việc

Dữ liệu nằm trong sổ làm việc và có thể được xuất.

Có nhiều cơ hội để cải thiện: các tiêu đề có thể được đổi tên và độ rộng cột có thể được điều chỉnh. SheetJS Pro cung cấp các tùy chọn kiểu dáng bổ sung như kiểu dáng di động và hàng đông lạnh.

Thay đổi tên tiêu đề [bấm để hiển thị] [click to show]

Theo mặc định,

const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
6 tạo một bảng tính với hàng tiêu đề. Trong trường hợp này, các tiêu đề đến từ các khóa đối tượng JS: "Tên" và "Sinh nhật".

Các tiêu đề nằm trong các tế bào

const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
7 và
const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
8.
const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
9 có thể viết các giá trị văn bản vào bảng tính hiện có bắt đầu tại ô
const url = "//sheetjs.com/data/executive.json";
const raw_data = await [await fetch[url]].json[];
7:

XLSX.utils.sheet_add_aoa[worksheet, [["Name", "Birthday"]], { origin: "A1" }];

Thay đổi chiều rộng cột [bấm để hiển thị] [click to show]

Một số tên dài hơn chiều rộng cột mặc định. Chiều rộng cột được đặt bằng cách đặt thuộc tính bảng tính

{
"id": { /* [data omitted] */ },
"name": {
"first": "John", //

Bài Viết Liên Quan

Chủ Đề