您好:请问 JS 是否可以汇入「.xls」

之前有EXCELJS 可以汇入/出 xlsx但 无法处理 .xls

所以想说,是否有其他方式可以处理谢谢

3 个回答

  • 旧至新
  • 新至旧
  • 最高Like数

0

adriangabrielle

iT邦见习生 ‧ 2024-11-07 15:31:44

Yes! it is possible.


  • 1

noway

iT邦研究生 1 级 ‧
2024-11-07 15:52:22

用什么元件?
excelJS 只可以 处理xlsx
不能处理 xls
谢谢

修改

0

Yaowen

iT邦研究生 3 级 ‧ 2024-11-07 15:55:05

Spire.XLS
https://www.e-iceblue.com/Introduce/xls-for-javascript.html


  • 2

noway

iT邦研究生 1 级 ‧
2024-11-08 07:56:25

您好:
这要费用?

修改

Yaowen

iT邦研究生 3 级 ‧
2024-11-08 14:18:03

对这要费用

修改

2

rain_yu

iT邦研究生 5 级 ‧ 2024-11-08 08:26:45

您好!

在 JavaScript 中,处理 .xls 档案(即 Excel 97-2003 格式)相对较为繁琐,因为许多流行的库主要针对 .xlsx 格式。不过,您还是有一些选择可以处理 .xls 档案:

  1. SheetJS (xlsx):

    • SheetJS 是一个非常流行的 JavaScript 库,主要用于处理 Excel 档案。虽然它主要支援 .xlsx 格式,但它也能支援 .xls 档案的解析。您可以使用 xlsx 方法来读取 .xls 档案。
    const XLSX = require(\'xlsx\');
    
    // 读取 .xls 档案
    const workbook = XLSX.readFile(\'path/to/your/file.xls\');
    
    // 取得工作表
    const sheetName = workbook.SheetNames[0];
    const worksheet = workbook.Sheets[sheetName];
    
    // 转换为 JSON
    const data = XLSX.utils.sheet_to_json(worksheet);
    console.log(data);
    
  2. 其他库:

    • js-xls: 这是一个专门用于处理 .xls 档案的库,但功能上可能不如 SheetJS 完整。
    • ExcelJS: 虽然您提到 ExcelJS 主要处理 .xlsx,不过它在某些情况下也能处理 .xls,但可能需要转换格式。
  3. 后端处理:

    • 若需要,可以考虑将 .xls 档案上传到伺服器,然后使用后端语言(如 Python 的 pandas 或 PHP 的 PhpSpreadsheet)来处理这些档案,再将处理后的资料透过 API 传回前端。

  • 2

noway

iT邦研究生 1 级 ‧
2024-11-08 17:13:56

您好:谢谢
我有再另外参考
https://blog.csdn.net/Naisu_kun/article/details/128483299
但有乱码,
参考
https://www.cnblogs.com/zhangchenyi/p/sheetjs_csv.html

但没有效?? codepage:950

  const workbook = XLSX.read(data, {
                type: \'binary\',
                codepage:950
            });

请问还有哪边需要设定吗?
谢谢

修改

rain_yu

iT邦研究生 5 级 ‧
2024-11-12 10:22:11

在处理 .xls 档案或带有中文的 CSV 档案时,遇到编码问题是常见的情况。根据您提供的资讯和相关的问题,这里有一些步骤和建议,帮助您解决使用 SheetJS 时中文解析为乱码的问题:

1. 确认档案的编码

首先,确保您处理的档案确实是使用正确的编码格式。可以使用 VS Code 或其他文本编辑器查看档案的编码。

2. 使用正确的 codepage 参数

当使用 XLSX.read() 读取档案时,codepage 参数非常重要。根据您的情况,您应该依据档案的实际编码来设定:

  • 936:简体中文 (GBK)
  • 950:繁体中文 (Big5)

3. 读取档案的範例程式码

以下是一个使用 FileReaderSheetJS 来读取 .xls 档案的範例:

var fileField = document.getElementById(\'custpage_file\');
var file = fileField.files[0];
if (!file) { return; }

var reader = new FileReader();
reader.onload = function (e) {
    var data = e.target.result;

    // 使用正确的 codepage 参数
    var wb = XLSX.read(data, {
        type: \'binary\',
        codepage: 936 // 根据需要调整为 950
    });

    // 取得工作表
    var sheetName = wb.SheetNames[0];
    var worksheet = wb.Sheets[sheetName];

    // 转换为 JSON
    var jsonData = XLSX.utils.sheet_to_json(worksheet);
    console.log(jsonData);
};

reader.readAsBinaryString(file);

4. 错误处理

如果仍然遇到问题,请检查以下几点:

  • 档案是否正确读取:可以在 reader.onload 中加入 console.log(data); 来检查读取的内容。
  • FileReader 的使用:确保使用 readAsBinaryString 方法,这对于 .xls 档案是必要的。
  • 档案大小和格式:确认档案不是损坏的,且是正确的 .xls 格式。

5. 其他选择

如果上述方法仍无法解决问题,您可以考虑以下替代方案:

  • 后端处理:将档案上传到伺服器,使用后端语言(如 Python 的 pandas 或 PHP 的 PhpSpreadsheet)来处理档案,然后将处理后的资料返回前端。
  • 使用其他库:考虑使用专门处理 .xls 档案的库,如 js-xls,虽然功能可能不如 SheetJS 完整。

希望这些建议能帮助您解决问题!如果还有其他问题,请随时告诉我。

修改