Hướng dẫn read password-protected excel file in javascript - đọc tệp excel được bảo vệ bằng mật khẩu trong javascript

Vấn đề là dường như không có phương pháp nào để bỏ qua các đối số tùy chọn với JScript và ________ 8 hàm. Đơn giản chỉ cần bỏ qua chúng như trong:

var obj = Excel.Workbooks.Open(Location, , , , "password");

là một lỗi cú pháp trong JScript.

Sử dụng

var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
0 dường như dẫn đến
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
1 trong ____ ____ 8 hàm. Vì thế

var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");

sẽ không hoạt động vì đối số thứ tư

var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
3 không thể là
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
1. Nó phải là
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
5 đến
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
6 theo Workbooks.open Method (Excel)

Vì vậy, cách duy nhất dường như không phải là bỏ qua mà là để bàn giao các giá trị có thể cho chúng:not to omit but to hand over possible values for them:

var obj = Excel.Workbooks.Open(Location, 0, false, 1, "password");

sẽ làm việc.


Edit:

Trong trường hợp đặc biệt này, vì tất cả các đối số tùy chọn là

var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
7, để bàn giao
var obj = Excel.Workbooks.Open(Location, undefined, undefined, undefined, "password");
8 cho các đối số tùy chọn hoạt động cho tôi:

var obj = Excel.Workbooks.Open(Location, null, null, null, "password");

Có một câu hỏi về dự án này? Đăng ký một tài khoản GitHub miễn phí để mở một vấn đề và liên hệ với người bảo trì và cộng đồng của nó. Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Chọn tên người dùng Địa chỉ EmailPassword

Bằng cách nhấp vào Đăng ký đăng ký cho GitHub, bạn đồng ý với Điều khoản dịch vụ và tuyên bố quyền riêng tư của chúng tôi. Chúng tôi thỉnh thoảng gửi cho bạn các email liên quan đến tài khoản.

Đã có trên Github? đăng nhập vào tài khoản của bạn

Chào mọi người,

Tôi đang sử dụng API JavaScript xlsx.read để tải lên tệp excel, trong khi cố gắng tải lên tệp excel tôi cần bảo vệ hoặc xóa mật khẩu hoặc bất kỳ cách nào khác để không bảo vệ hoặc nhập mật khẩu vào javascript, tôi đã đính kèm mã bên dưới Để bạn tham khảo, xin vui lòng kiểm tra.

Cảm ơn,

Những gì tôi đã thử:

   <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js">  </script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>
 <script>
   var ExcelToJSON = function() {

   this.parseExcel = function(file) {
   var reader = new FileReader();

   reader.onload = function(e) {
   var data = e.target.result;
   var workbook = XLSX.read(data, {
      type: 'binary',
      password: NULL
 });

   workbook.SheetNames.forEach(function(sheetName) {
   
   var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
   var json_object = JSON.stringify(XL_row_object);
   console.log(json_object);

  })

 };

  reader.onerror = function(ex) {
   console.log(ex);
 };

  reader.readAsBinaryString(file);
  };
};


Nội dung này, cùng với bất kỳ mã nguồn và tệp liên quan nào, được cấp phép theo giấy phép mở của Dự án Mã (CPOL)



Codeproject, 20 Bay Street, Tầng 11 Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900

[

Bất cứ ai có thể vui lòng đề xuất bất kỳ plugin JavaScript nào để xác thực tệp excel được bảo vệ mật khẩu, tôi có một mô -đun để đọc tệp excel, nhưng nó không hoạt động cho tệp excel được bảo vệ bằng mật khẩu, vì vậy hãy chia sẻ ý tưởng

Khi tôi đã tải lên tệp excel, nó sẽ hoạt động như bên dưới kịch bản

  1. Tải lên tệp excel
  2. Kiểm tra xem tệp excel có được bảo vệ mật khẩu không
  3. Xác thực mật khẩu tệp excel
  4. Sau đó đọc tệp excel

Trình đọc tệp bằng cách sử dụng HTML JavaScript:

<html>
<input type="file" id="fileUpload" />
<input type="button" id="upload" value="Upload" onclick="UploadProcess()" />
<div id="ExcelTable"></div>


  <script type="text/javascript" 
  src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.13.5/xlsx.full.min.js"></script>
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.13.5/jszip.js"> 
 </script>
 
  <script type="text/javascript">
  function UploadProcess() {
  //Reference the FileUpload element.
 var fileUpload = document.getElementById("fileUpload");


//Validate whether File is valid Excel file.
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.xls|.xlsx)$/;
if (regex.test(fileUpload.value.toLowerCase())) {
    if (typeof (FileReader) != "undefined") {
        var reader = new FileReader();

        //For Browsers other than IE.
        if (reader.readAsBinaryString) {
            reader.onload = function (e) {
                GetTableFromExcel(e.target.result);
            };
            reader.readAsBinaryString(fileUpload.files[0]);
        } else {
            //For IE Browser.
            reader.onload = function (e) {
                var data = "";
                var bytes = new Uint8Array(e.target.result);
                for (var i = 0; i < bytes.byteLength; i++) {
                    data += String.fromCharCode(bytes[i]);
                }
                GetTableFromExcel(data);
            };
            reader.readAsArrayBuffer(fileUpload.files[0]);
        }
    } else {
        alert("This browser does not support HTML5.");
    }
} else {
    alert("Please upload a valid Excel file.");
 }
};
function GetTableFromExcel(data) {
//Read the Excel File data in binary
var workbook = XLSX.read(data, {
    type: 'binary'
});


//get the name of First Sheet.
var Sheet = workbook.SheetNames[0];

//Read all rows from First Sheet into an JSON array.
var excelRows = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[Sheet]);

//Create a HTML Table element.
var myTable  = document.createElement("table");
myTable.border = "1";

//Add the header row.
var row = myTable.insertRow(-1);

//Add the header cells.
var headerCell = document.createElement("TH");
headerCell.innerHTML = "Id";
row.appendChild(headerCell);

headerCell = document.createElement("TH");
headerCell.innerHTML = "Name";
row.appendChild(headerCell);

headerCell = document.createElement("TH");
headerCell.innerHTML = "Country";
row.appendChild(headerCell);

headerCell = document.createElement("TH");
headerCell.innerHTML = "Age";
row.appendChild(headerCell);

headerCell = document.createElement("TH");
headerCell.innerHTML = "Date";
row.appendChild(headerCell);
 
 headerCell = document.createElement("TH");
headerCell.innerHTML = "Gender";
row.appendChild(headerCell);


//Add the data rows from Excel file.
for (var i = 0; i < excelRows.length; i++) {
    //Add the data row.
    var row = myTable.insertRow(-1);

    //Add the data cells.
    var cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Id;

    cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Name;

    cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Country;
    
    cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Age;
    
    cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Date;
    
    cell = row.insertCell(-1);
    cell.innerHTML = excelRows[i].Gender;
}


 var ExcelTable = document.getElementById("ExcelTable");
 ExcelTable.innerHTML = "";
 ExcelTable.appendChild(myTable);
};

]