Yes! it is possible.
您好!
在 JavaScript 中,處理 .xls
檔案(即 Excel 97-2003 格式)相對較為繁瑣,因為許多流行的庫主要針對 .xlsx
格式。不過,您還是有一些選擇可以處理 .xls
檔案:
SheetJS (xlsx):
.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);
其他庫:
.xls
檔案的庫,但功能上可能不如 SheetJS 完整。.xlsx
,不過它在某些情況下也能處理 .xls
,但可能需要轉換格式。後端處理:
.xls
檔案上傳到伺服器,然後使用後端語言(如 Python 的 pandas
或 PHP 的 PhpSpreadsheet
)來處理這些檔案,再將處理後的資料透過 API 傳回前端。您好:謝謝
我有再另外參考
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
});
請問還有哪邊需要設定嗎?
謝謝
在處理 .xls 檔案或帶有中文的 CSV 檔案時,遇到編碼問題是常見的情況。根據您提供的資訊和相關的問題,這裡有一些步驟和建議,幫助您解決使用 SheetJS 時中文解析為亂碼的問題:
首先,確保您處理的檔案確實是使用正確的編碼格式。可以使用 VS Code 或其他文本編輯器查看檔案的編碼。
codepage
參數當使用 XLSX.read()
讀取檔案時,codepage
參數非常重要。根據您的情況,您應該依據檔案的實際編碼來設定:
936
:簡體中文 (GBK)950
:繁體中文 (Big5)以下是一個使用 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);
如果仍然遇到問題,請檢查以下幾點:
reader.onload
中加入 console.log(data);
來檢查讀取的內容。readAsBinaryString
方法,這對於 .xls 檔案是必要的。如果上述方法仍無法解決問題,您可以考慮以下替代方案:
js-xls
,雖然功能可能不如 SheetJS 完整。希望這些建議能幫助您解決問題!如果還有其他問題,請隨時告訴我。