您好:请问 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
档案:
-
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);
- SheetJS 是一个非常流行的 JavaScript 库,主要用于处理 Excel 档案。虽然它主要支援
-
其他库:
-
js-xls: 这是一个专门用于处理
.xls
档案的库,但功能上可能不如 SheetJS 完整。 -
ExcelJS: 虽然您提到 ExcelJS 主要处理
.xlsx
,不过它在某些情况下也能处理.xls
,但可能需要转换格式。
-
js-xls: 这是一个专门用于处理
-
后端处理:
- 若需要,可以考虑将
.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
});
请问还有哪边需要设定吗?
谢谢
但没有效?? 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. 读取档案的範例程式码
以下是一个使用 FileReader
和 SheetJS
来读取 .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 完整。
希望这些建议能帮助您解决问题!如果还有其他问题,请随时告诉我。
### 1. 确认档案的编码
首先,确保您处理的档案确实是使用正确的编码格式。可以使用 VS Code 或其他文本编辑器查看档案的编码。
### 2. 使用正确的 `codepage` 参数
当使用 `XLSX.read()` 读取档案时,`codepage` 参数非常重要。根据您的情况,您应该依据档案的实际编码来设定:
- `936`:简体中文 (GBK)
- `950`:繁体中文 (Big5)
### 3. 读取档案的範例程式码
以下是一个使用 `FileReader` 和 `SheetJS` 来读取 .xls 档案的範例:
```javascript
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 完整。
希望这些建议能帮助您解决问题!如果还有其他问题,请随时告诉我。
修改