簡體   English   中英

如何在客戶端操作 Excel 文件

[英]How to manipulate Excel file on the client side

我是 php 和 javascript 的新手,所以我什至不確定我能否正確地揭露我的案子。

我有一個 php 表單,客戶端在其瀏覽器上選擇選項。

提交時,需要客戶端瀏覽器從另一個域下載 excel 文件(我無法控制第二個服務器響應)。

它必須在客戶端完成,因為只有用戶才能訪問第二個域(在本地網絡內或通過 VPN 從 Internet 訪問)。

我設法使用以下 javascript 強制下載:

function download(dataurl,filename) {
    var a = document.createElement("a");
    a.href = dataurl;
    a.download = filename;
    a.click();
    window.URL.revokeObjectURL(dataurl);
    a.remove();
}
download(url,filename);

文件名什么都不做,因為文件是用服務器發送的名稱保存的。

下載文件后,我仍然需要重命名並將其移動到特定的網絡目錄(只能由客戶端訪問)。

我不能使用 js fetch,因為瀏覽器使用 CORS 阻止了下載。

由於安全原因,我什至不確定這是否可能。

任何幫助將非常感激。

“我仍然需要重命名並將其移動到特定的網絡目錄”

...您不能從 JavaScript、JavaScript 中執行此操作,出於安全原因,在瀏覽器中運行的設備無法訪問正在運行的設備的文件系統。

你所能做的就是給出他們需要做什么的指示。 如果這不令人滿意,那么您需要將此項目實現為桌面應用程序,而不是 web 應用程序。

作為一個骯臟的解決方法,如何使用適當的 DOS 復制命令生成一個 .bat 文件? 如果您的用戶樂於下載並執行該文件,它可能會完成這項工作!

我用 web 應用程序做了類似的事情,它為本地宏程序生成命令。

例如:您可以保存以下內容以將文件復制到正確的目錄

copy c:\\path\to\download\file.xls n:\\path\to\networked\destination

或者您可以使用內置的 windows 命令來處理文件下載

curl.exe -0 c:\\path\to\download\file.xls https://domain_with_file.com/file.xls

不過,這並不是一種理想的處理方式,而且看起來下載的任何批處理文件都可能被標記為潛在的病毒威脅。

我想我找到了一個解決方案(IE 僅具有適當的 Internet 選項設置):

function test() {
    /* global ActiveXObject*/
    var Excel = new ActiveXObject("Excel.Application");
    Excel.Visible = true; //optional
    Excel.Workbooks.Open("C:\\Users\\user1\\Downloads\\file1.xlsx");
}

從這里開始,我相信我幾乎可以做我想做的事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM