我有一个包含表单和控件的Excel文件。由于无法使用PHP从头开始创建包含表单,控件和VBA代码的Excel文件,我想我可以将空的Excel文件上传到服务器,更新它然后让用户下载它。
我知道有一些非常好的PHP类作为PHPExcel,但我不知道这些类是否可以附加数据。有没有人以前做过这个?
答案 0 :(得分:5)
从另一个方向思考!
不是将数据从php推送到excel,而是将数据连接添加到excel,它将从php端点taht publish xml中检索其数据。
不知道它是否适用,但实施起来要容易得多。
此外,您将完全控制excel文件,保留所有自定义,包括VBA。
最后,如果你朝这个方向走,你将避免所有混乱的COM对象管理。
[编辑]此解决方案的步骤:
yourdata.php
将以XML格式生成数据。)之后,您将在Excel中有一个列表,而不是链接到您的xml源。只需右键单击列表/刷新以获取最新数据(或将数据连接配置为在打开时自动刷新)。
答案 1 :(得分:3)
@SteveB继续我的评论和您之前的回复..请参阅下文。
@SteveB看起来是个好主意......但为什么要使用xml?我尝试使用 xml,但我不知道在文本文件中写入xml的格式是什么?能够 你解释一下。我们还可以使用.csv吗?因为它看起来很容易 简单的.csv文件。整个解决方案将如何运作...说我是 用户..谁点击并打开一个php页面..以及excel应该在哪里 存储模板..以及它将如何弹出给用户..什么时候发生 另一个用户连接到同一页面等。我想保留数据透视表, excel宏和vba,模板文件中的图像和图表。 - ihightower
@ihightower:xml比CSV更容易生成(至少使用.Net 和C#,这是我的主要编程语言),但这可行 我认为还有CSV。提供Excel模板很简单......简单 将其作为静态内容提供,因为excel文件不是动态的 产生。 - 史蒂夫B
我的结论......
导入的CSV格式仅在不需要Excel表格格式时才有效。您不能突出显示备用行,滚动期间可用列标题等。 总之,对于我发现你不能同时拥有外部数据和表格格式。
您将数据连接表转换为"格式为表"的错误是这样的:
Your selection overlaps one or more external data ranges.
Do you want to convert the selection to a table and remove
all external connection?
当然,我不希望这样......但是使用xml格式进行数据连接......表格格式可以像这样截图:
并且,当您滚动过去一个屏幕时...屏幕将如下所示..您可以看到列标题A,B,C自动转换为数据标题(ISBN,日期,标题,... )
所以,我们应该寻找一个xml解决方案..我们正在弄清楚如何使用php。但是,使用CSV进行测试,大约有10列x 20,000行数据..它非常好用。来自Web服务器的刷新也非常有效。
我与我的团队进行了内部讨论,我们认为这对我们非常有用。现在,我们正在集思广益于用户操作的交付和流程,以便使用他从php生成的数据提供Excel模板报告。
这是带有示例数据的Excel模板..在此屏幕截图中......您可以看到
我们可以基本使用Excel为我们提供的所有内容。生成的xml文件可以保留在Web服务器上。数据连接也可以是URL或文件。
的SourceFile =" HTTP://xxxxx/test_data3.csv"或
sourceFile =" C:\ Users \ Fiaz \ Documents \ Magic Briefcase \ Learn \ excel \ test_data3.csv"
尚未弄清楚的部分是如何将这一切与无缝的用户体验连接在一起..即用户不应该首先强制保存文件或手动连接xml等.excel模板必须在那里打开所需的数据和所有可用的分析。如果用户需要保存它,他将使用另存为并复制到本地计算机。
我们对这种无缝用户体验的想法是这样的:
我一步一步地尝试了它,它确实有效。
对于任何有关此问题的想法,我们将非常感激,以使其变得更好并且仍然保持简单。
PHPExcel作者@MarkBaker所需的反馈:
@MarkBaker:阅读其他帖子中的评论 PHPExcel,我知道我们不能使用PHPExcel做同样的事情 (即使用原始的excel模板)。所以,解决方案 SteveB建议并由我在上面阐述似乎更多 为此目的有力。我们可以保留原始的Excel模板 与所有资产(数据透视表,vba等)保持原样的文件。服务器需要 也没有Excel。
因此,我们可以期待此功能在将来的某个时间可用于PHPExcel。然后我们可以更自信地使用 PHPExcel大师自己的标准技术。
在我看来,PHPExcel对发票类型的报告和许多其他报告非常有用 不适用于商业智能类型的分析......这需要使用数据透视表和复杂的图表和代码等。
请发表您的意见..我将非常有兴趣从您的角度看待它如何做得更好。
让一切尽可能简单,但并不简单。阿尔伯特爱因斯坦
答案 2 :(得分:2)
使用PHPExcel添加很容易 - 加载文件,在最后一行之后添加数据,保存文件......遗憾的是,不支持表单和VBA代码。
要保留这些内容,您需要使用COM,这会将您限制为安装了MS Excel的Windows服务器。
答案 3 :(得分:0)
我认为您实际上不能append
数据到现有的Excel文件。
这将模拟追加行动。
答案 4 :(得分:0)