2015-11-07 95 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文件如何工作,但如果你这样做,我认为你可以。 –