2015-11-07 183 views
1

我想要做的是有一組可編輯的Excel文件在我的網頁:編輯文件

  • 我給聯繫一下用戶表示Excel文件
  • 隨着點擊一下,用戶編輯Excel文件的默認程序(比如說MS Excel)應該打開
  • 完成編輯後,文件應該透明地上傳到我的服務器上供用戶使用,下一次用戶訪問我的頁面時,他們應該看到他們的編輯文件,並能夠再次編輯它

我已經考慮:

  • 的JavaScript類似Excel的網格。但是,我沒有找到具有足夠功能的JavaScript庫,例如輕鬆移動行(任何有關JavaScript的優秀Excel組件的建議?)
  • 使用它們的API保存到DropBox/Google Docs/...。但是,它要求用戶擁有一個帳戶,並且可能需要我管理用戶的DropBox密碼(並非所有用戶都希望與我共享密碼)。另外,我需要有Google Drive,Miscrosoft OneDrive的界面,以及誰知道還有多少其他服務。
  • 允許用戶下載文件,並依賴用戶將其重新上傳。但是,這對用戶而言太複雜了,用戶會忘記上傳文件,這意味着他們將不再編輯。任何方式或關閉時自動上傳文件?
  • 我的Excel文件中的一個宏,在退出之前會聯繫我的服務器。但是,這需要用戶啓用宏(安全警報),並且如果連接中斷,則可能不可靠。我沒有評估這在技術上是否可行。

或者什麼是最好/最簡單的方法來實現這一目標?

(我知道如何生成Excel文件,以及如何從網頁中打開它們,我的問題是如何讓用戶編輯回服務器透明的用戶。)

+0

_「允許用戶下載該文件並依靠用戶再次上傳。但是,這對用戶而言太複雜了,用戶會忘記上傳文件,這意味着他們將不再編輯。任何方式或關閉時自動上傳文件?「_爲什麼要選擇保存文件是」複雜的「?當用戶選擇保存文件時上傳文件?或用戶」關閉「文件的哪個部分? – guest271314

+0

」用戶選擇時上傳文件保存文件?「 - 你的意思是從Excel文件中的VBA腳本上傳到服務器? –

+0

1)用戶點擊打開excel編輯器; 2)當編輯完成用戶選擇上傳編輯文件到'html'文件 – guest271314

回答

0

我認爲最簡單的方法這樣做(「讓用戶的編輯回到服務器透明地爲用戶」)是使用AJAX(JS)請求到PHP腳本。

AJAX非常適合在後臺執行操作(異步),但無法編輯服務器。只需在JS中添加一個事件監聽器(可能是onchangeonblur),並在用戶每次編輯文件時發送一個AJAX請求。

PHP是一款優秀的服務器端腳本語言,您可以使用它編輯文件。


EDIT:實施例(收費)

假設Excel文件存儲在一個串中的<textarea>爲簡單起見(現在),可以設置一個監聽器來從數據它(jQuery中),併發送一個AJAX請求:

HTML:

<textarea id="excel"></textarea> 

JS:

$("#excel").change(function() { 
    var excelFile = $(this).val(); 
    $.ajax({ 
     url: "updateFile.php", 
     method: "post", 
     data: { data: excelFile } 
    }); 
}); 

PHP(updateFile.php):

<?php 
    $data = $_POST["data"]; 
    $file = fopen("FILENAME.xlsx", "w+"); 
    fwrite($file, $data); 
    fclose($file); 
?> 
+0

謝謝!你能否提供更多細節?我知道如何使用Ajax。如果用戶在客戶端上使用MS Excel,我的腳本將如何知道他何時完成編輯以及如何獲取編輯後的文件?如果用戶在瀏覽器中編輯文件,那麼您是否可以建議一個足夠好的JavaScript組件,這將允許移動行? –

+0

@AlexanderGelbukh我馬上舉個例子,別擔心! –

+0

我想你可以編寫你自己的JS組件。我不知道我的頭頂,也不知道Excel文件如何工作,但如果你這樣做,我認爲你可以。 –