标签: sheetjs

Javascript使用SheetJS读取服务器上的Excel文件

我正在使用一个名为SheetJS的库,我想在不使用 nodejs 的情况下读取驻留在服务器上的 Excel 工作表,只使用纯 javascript。这可能吗?

文档中有一条消息说“readFile 仅在服务器环境中可用。浏览器没有用于读取给定路径的任意文件的 API,因此必须使用另一种策略”

对于上述消息,我假设作者指的是文件驻留在客户端的情况。

这是我到目前为止所做的

var wb = XLSX.readFile("myFile.xlsx"); //my file is in same directory on server
Run Code Online (Sandbox Code Playgroud)

我收到错误“ xlsx.full.min.js:22 Uncaught TypeError:无法读取未定义的属性‘readFileSync’

javascript excel jquery js-xlsx sheetjs

3
推荐指数
1
解决办法
5164
查看次数

使用 SheetJS 获取 Excel 列标题

我目前正在创建一个 Web 应用程序,允许用户将 excel 文件上传到数据库中,但在用户上传文件之前,我希望允许他们检查 excel 文件的标头是否与数据库上的预设匹配。下面的代码允许我显示 Excel 文件上的所有内容:

$('#inputfile').change(function(e){
                var reader = new FileReader();
                reader.readAsArrayBuffer(e.target.files[0]);
                reader.onload = function(e) {
                        var data = new Uint8Array(reader.result);
                        var wb = XLSX.read(data,{type:'array'});
                        var htmlstr = XLSX.write(wb,{sheet:"Sheet1", type:'binary',bookType:'html'});
                        $('#printHere')[0].innerHTML += htmlstr;
                }
});
Run Code Online (Sandbox Code Playgroud)

我只想将 Excel 文件的标题存储在数组中并显示它。我是 Javascript 新手,所以任何帮助将不胜感激。

javascript excel sheetjs

3
推荐指数
1
解决办法
1万
查看次数

找不到模块“xlsx”

我在构建服务器上使用 jenkins 进行构建时得到了这个,但我正在本地计算机上尝试这个,然后它工作正常但出现错误

15:07:39 "",
15:07:39 "",
15:07:39 "ERROR in src/services/excel.service.ts:2:23 - error TS2307: Cannot find module 'xlsx'.",
15:07:39 "",
15:07:39 "2 import * as XLSX from 'xlsx';",
15:07:39 " ~~~~~~"
15:07:39 
Run Code Online (Sandbox Code Playgroud)

使用 npm install xlsx 安装 xlsx

并导入 xlsx 模块。从 'xlsx' 导入 * 作为 XLSX;

import { Injectable } from '@angular/core';
import * as XLSX from 'xlsx';
import * as _ from 'lodash';

@Injectable({
  providedIn: 'root'
})
export class ExcelService {

  constructor() { }
  wopts: XLSX.WritingOptions = { bookType: …
Run Code Online (Sandbox Code Playgroud)

node.js npm typescript angular sheetjs

3
推荐指数
1
解决办法
3万
查看次数

SheetJS:将行值从数组转置为对象

我正在尝试创建一个数组,其中每个“工作日”都是一个带有索引和开始/结束日期的对象,但我不知道如何操作 JSON 以获得特定的结构。

我正在使用以下包: https: //github.com/SheetJS/sheetjs

当前代码:

const workbook = XLSX.read(file.buffer, { type: 'buffer' });
const worksheet = workbook.Sheets['Calendar Config'];
const parsed = XLSX.utils.sheet_to_json(worksheet);
Run Code Online (Sandbox Code Playgroud)

电流输出:

[
  {
    'Calendar Name': 'Standard',
    'Valid From': 44197,
    'Valid To': 44561,
    'Use Holidays': 'yes',
    'Working Day': 'Monday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Tuesday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Wednesday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Thursday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Friday',
    Start: 0.3333333333333333, …
Run Code Online (Sandbox Code Playgroud)

javascript excel typescript exceljs sheetjs

3
推荐指数
1
解决办法
3348
查看次数

浏览器中的 SheetJS (js-xlsx):从 Blob 读取工作簿

我在尝试使用 SheetJS 从 构建 Workbook 对象时遇到了困难Blob,而不是像拖放或文件输入元素事件这样的客户端事件。后两者在文档的示例Blob中有所介绍,但我缺乏从我所拥有的、通过FileReader事件并转换为 API 所需的 JS-fu XLSX.read()

给定浏览器中的 a Blob,这如何实现,或者可以实现吗?

filereader typescript sheetjs

2
推荐指数
1
解决办法
4405
查看次数

如何在客户端使用SheetJS将数据导出到TSV文件?

浏览SheetJS 文档,我注意到支持导出到 csv 文件。我有工作代码,可以将对象数组转换为文件并开始下载:

let workSheet = XLSX.utils.json_to_sheet(rows);
let workBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workBook, workSheet);
XLSX.writeFile(workBook, 'export.csv');
Run Code Online (Sandbox Code Playgroud)

但说到 tsv,只有一个将工作表转换为文本的示例

> console.log(XLSX.utils.sheet_to_csv(ws, {FS:"\t"}));
S   h   e   e   t   J   S
1   2   3   4   5   6   7
2   3   4   5   6   7   8
Run Code Online (Sandbox Code Playgroud)

问题是,如何在文件中获得这种输出?

javascript csv sheetjs

2
推荐指数
1
解决办法
1440
查看次数

如何在 SheetJS 的 XSLX 中使用 <input type="file"> 中的文件?

我希望能够将 .xlsx 文件上传到网页,以便稍后在 JavaScript 代码中使用 .xlsx 单元格中的值。如何将代码和 SheetJS 的 XLSX 结合起来来做到这一点?

javascript sheetjs

2
推荐指数
1
解决办法
2878
查看次数

如何使用 Node js 中的 xlsx/sheetjs 包在现有 xlsx 文件中创建新工作表?

如何使用 Node js 中的sheetjs 的 xlsx 包在现有的 xlsx 文件中创建/添加新的工作表文件?

到目前为止,这是我针对现有“todo-list.xlsx”文件的代码。

const xlsx = require('xlsx');
workBook = xlsx.readFile("todo-list.xlsx", {cellDates:true});
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情(这是通过使用 Excel JS 包完成的):

const sheet = workbookStream.addSheet('sheet1');
Run Code Online (Sandbox Code Playgroud)

...但是使用 xlsx 包。

非常感谢您!

javascript excel xlsx node.js sheetjs

2
推荐指数
1
解决办法
1万
查看次数

SheetJS 显示空白行

当我使用该方法上传文件 xlsx 时,我使用 SheetJS

_file(file) {
   /* Boilerplate to set up FileReader */
      const reader = new FileReader();
      reader.onload = (e) => {
      /* Parse data */
      const bstr = e.target.result;
      const wb = XLSX.read(bstr, {type:'binary'});
      /* Get first worksheet */
      const wsname = wb.SheetNames[0];
      const ws = wb.Sheets[wsname];
      /* Convert array of arrays */
      const data = XLSX.utils.sheet_to_json(ws, {header:1});
      /* Update state */
      this.data = data;
      this.cols = make_cols(ws['!ref']);
     };
   reader.readAsBinaryString(file);
}
Run Code Online (Sandbox Code Playgroud)

我得到了一些有数据的单元格,但它包括一些没有数据的行如何删除它?我只想看到有数据的行。TIA

javascript sheetjs

1
推荐指数
2
解决办法
5733
查看次数

用SheetJS格式化日期

预先感谢您看这个问题!我正在尝试使用SheetJS读取.xlsx文件,但是在通过Excel将其格式化为自定义“ yyyy / mm / dd hh:mm:ss”的日期列时遇到了一些麻烦。所有这些日期都显示为较大的浮动值。

这是在上载时读取.xlsx文件的代码:

uploadWorkbook(e) {
    let reader = new FileReader();
    reader.readAsBinaryString(e.target.files[0]);
    reader.onload = (e) => {
        let data = e.target.result;
        let workbook = XLSX.read(data, {type: 'binary'});
        let first_sheet_name = workbook.SheetNames[0];
        let worksheet = workbook.Sheets[first_sheet_name];
        let jsonObj = XLSX.utils.sheet_to_json(worksheet);
        console.log(jsonObj);
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,第一个对象的日期值为43395.29775462963。如果可能的话,我甚至可以将所有单元格格式化为字符串。任何帮助将不胜感激!

感谢大家!

javascript xlsx sheetjs

1
推荐指数
5
解决办法
3029
查看次数

标签 统计

sheetjs ×10

javascript ×8

excel ×4

typescript ×3

node.js ×2

xlsx ×2

angular ×1

csv ×1

exceljs ×1

filereader ×1

jquery ×1

js-xlsx ×1

npm ×1