一、js讀取excel文件指定單元格
當我們使用JavaScript讀取Excel文件時,有時候需要讀取特定的單元格。可以使用以下代碼實現:
let workbook = XLSX.read(data, { type: "binary" }); // data為Excel文件的二進位流 let worksheet = workbook.Sheets[sheetName]; // sheetName為需要讀取的工作表名 let cellValue = worksheet[address].v; // address為需要讀取的單元格地址
其中,worksheet[address].v
代表單元格的值,v
為Excel文件中每個單元格的屬性。更多的單元格屬性可以在worksheet[address]
中找到。
二、js讀取excel文件日期格式錯誤
讀取Excel文件時,日期格式可能會出現錯誤,例如美國的日期格式為:月/日/年,而歐洲的日期格式為:日/月/年。可以使用以下代碼強制將日期轉換為合適的格式:
let workbook = XLSX.read(data, { type: "binary", dateNF:"MM-DD-YYYY" }); // dateNF屬性允許設置日期的格式 let worksheet = workbook.Sheets[sheetName];
其中,"MM-DD-YYYY"
為合適的日期格式。此外,還可以使用"YYYY-MM-DD"
或其他日期格式。
三、js讀取excel文件chrome
在使用Chrome瀏覽器時,可能會出現文件跨域的問題。可以在Chrome瀏覽器中,安裝一個插件如「Allow-Control-Allow-Origin: *」,就可以解決文件跨域問題。
四、js讀取excel文件內容
讀取Excel文件的內容非常簡單,只需要使用以下代碼:
let workbook = XLSX.read(data, { type: "binary" }); let worksheet = workbook.Sheets[sheetName]; let jsonData = XLSX.utils.sheet_to_json(worksheet);
其中,jsonData
為讀取到的Excel文件內容。可以使用console.log(jsonData)
來列印讀取到的文件內容。
五、js讀取excel文件中的數據
讀取Excel文件中的數據非常方便,只需使用以下代碼即可:
let workbook = XLSX.read(data, { type: "binary" }); let worksheet = workbook.Sheets[sheetName]; let range = worksheet["!ref"]; // 獲取數據範圍 let rows = XLSX.utils.decode_range(range).e.r - XLSX.utils.decode_range(range).s.r + 1; // 獲取數據行數 let cols = XLSX.utils.decode_range(range).e.c - XLSX.utils.decode_range(range).s.c + 1; // 獲取數據列數 let data = new Array(rows); // 定義一個數組 for(let i = 0; i < rows; i++) { data[i] = new Array(cols); for(let j = 0; j < cols; j++) { let cellAddress = XLSX.utils.encode_cell({ r: i + XLSX.utils.decode_range(range).s.r, c: j + XLSX.utils.decode_range(range).s.c }); if(!worksheet[cellAddress]) continue; // 跳過沒有數據的單元格 data[i][j] = worksheet[cellAddress].v; // 賦值操作 } }
其中,data
為讀取到的Excel文件中的數據。可以使用console.log(data)
來列印讀取到的數據。
六、spss讀取excel文件
讀取SPSS文件格式的Excel文件,可以將Excel文件轉換為CSV文件。轉換代碼如下:
let workbook = XLSX.read(data, { type: "binary" }); let worksheet = workbook.Sheets[sheetName]; let csvData = XLSX.utils.sheet_to_csv(worksheet);
其中,csvData
為轉換後的CSV文件內容,可以使用console.log(csvData)
列印出來。
七、js讀取excel文件時間格式錯誤
在讀取Excel文件的時間格式時,有時候會出現錯誤。可以使用以下代碼解決這個問題:
let workbook = XLSX.read(data, { type: "binary", cellDates:true }); let worksheet = workbook.Sheets[sheetName]; let jsonData = XLSX.utils.sheet_to_json(worksheet); let dateString = XLSX.SSF.format("YYYY年MM月DD日 hh:mm:ss", jsonData[0].date); // date為讀取到的數據的date格式
其中,XLSX.SSF.format
可以將日期轉換為需要的日期格式,"YYYY年MM月DD日 hh:mm:ss"
為轉換後的格式。
八、js讀取excel文件20w
讀取Excel文件中的大量數據為實現非常重要的功能。可以使用以下代碼大大提高讀取Excel文件的效率:
let workbook = XLSX.read(data, { type: "binary" }); let worksheet = workbook.Sheets[sheetName]; let range = worksheet["!ref"]; let rows = XLSX.utils.decode_range(range).e.r - XLSX.utils.decode_range(range).s.r + 1; let cols = XLSX.utils.decode_range(range).e.c - XLSX.utils.decode_range(range).s.c + 1; let data = new Array(rows); for(let i = 0; i < rows; i++) { data[i] = new Array(cols); } for(let i = XLSX.utils.decode_range(range).s.r; i <= XLSX.utils.decode_range(range).e.r; i++) { for(let j = XLSX.utils.decode_range(range).s.c; j <= XLSX.utils.decode_range(range).e.c; j++) { let cellAddress = XLSX.utils.encode_cell({ r: i, c: j }); if(!worksheet[cellAddress]) continue; data[i][j] = worksheet[cellAddress].v; } }
以上方法區別在於,前一個方法需要對所有單元格進行遍歷,並且單元格為undefined時需要進行判斷,遍歷時間複雜度較高;後一個方法只遍歷有數據的單元格,大大提高讀取Excel文件的效率。
九、js讀取excel文件數據頁面顯示
在讀取Excel文件中的數據後,可以在頁面上顯示出來。可以使用以下代碼實現:
let workbook = XLSX.read(data, { type: "binary" }); let worksheet = workbook.Sheets[sheetName]; let jsonData = XLSX.utils.sheet_to_json(worksheet); let output = document.getElementById("output"); let html = "
" + key + " | "; } html += "
---|
" + jsonData[i][key] + " | " } html += "
其中,output
為指定顯示Excel文件數據的頁面位置,可以根據需要進行指定。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291043.html