我有一个很大的excel文件,可以产生很多计算。
结果用于产生~20'复杂'图表
我希望这些图表能够在joomla网站上发布,我想让我们在刷新工作簿时“瞬间”刷新(或者稍微延迟)
我目前使用的是什么:
windows 7
excel 2013
joomla 3.2.2托管于OVH
我现在尝试了什么
我的第一个想法是将我的Excel保存为谷歌电子表格(在谷歌驱动器上),并从他们可发布的图表中受益。它工作正常,但由于我的工作簿中有很多计算,刷新谷歌电子表格(实际上)太慢了 - >所以这不是一个选择..
我的第二个想法是保留我的Excel并在同一个excel文件中的专用工作表中准备图形所需的数据(*)。然后使用ftp并将此范围传输到xml文件
(*)数据具有以下列结构
然后xml具有以下结构
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataset>
<record>
<GraphId>GraphId</GraphId>
<Id>Id</Id>
<Type>Type</Type>
<Role>Role</Role>
<Variable>Variable</Variable>
<SubVariable>SubVariable</SubVariable>
<m1>m1</m1>
<m2>m2</m2>
<m3>m3</m3>
<m4>m4</m4>
<m5>m5</m5>
<m6>m6</m6>
<m7>m7</m7>
<m8>m8</m8>
<m9>m9</m9>
<m10>m10</m10>
<m11>m11</m11>
<m12>m12</m12>
<m13>m13</m13>
<m14>m14</m14>
<m15>m15</m15>
<m16>m16</m16>
<m17>m17</m17>
<m18>m18</m18>
<m19>m19</m19>
<m20>m20</m20>
<m21>m21</m21>
<m22>m22</m22>
<m23>m23</m23>
<m24>m24</m24>
<m25>m25</m25>
<m26>m26</m26>
<m27>m27</m27>
<m28>m28</m28>
<m29>m29</m29>
<m30>m30</m30>
<m31>m31</m31>
<m32>m32</m32>
<m33>m33</m33>
<m34>m34</m34>
<m35>m35</m35>
<m36>m36</m36>
</record>
我将此xml文件传输到我的网站,以便可以通过网址http://&lt; mywebsite&gt; /tmp/file.xml
然后在另一个谷歌电子表格(除了我之前提到的那个)之外,我使用了IMPORTXML功能
= IMPORTXML(http://&lt; mywebsite&gt; /tmp/file.xml,"// dataset // record //“)
它也很好(:-))意味着我在google spreadhseet中获取了我的xml文件的内容。所以我可以创建我的图表并发布它们...... 但是当我刷新我的excel工作簿时它不会自动刷新(我创建了一个VBA宏,当我刷新我的excel workboook时会自动将我的xml文件放到我的网站上) 因为谷歌电子表格中的IMPORTXML功能仅在一(或两)小时间隔刷新...
我已经阅读了很多关于在旧的谷歌电子表格中添加googleclock()函数,但我正在使用新的谷歌电子表格
到目前为止我发现刷新importxml函数的方法是删除url的最后一个字符然后提交然后重新输入最后一个字符然后重新提交..不是那个自动的...... :-(
欢迎任何有价值的想法。
修改
最后,我通过在google spreadhsheet中输入新的Google表单找到了答案
我添加了一个文本输入表单,其中应包含我的xml文件的名称
并添加一些VBA代码
Dim httpRequest As XMLHTTP
Set httpRequest = New XMLHTTP
httpRequest.Open "POST", "https://docs.google.com/forms/d/<yourFormKey>/formResponse?ifq", False
httpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpRequest.send "entry.<yourEntryKey>=<yourValue>&submit=Submit"
'Check result in the following vars
a = httpRequest.Status
b = httpRequest.statusText
其中
&LT; yourFormKey&gt;是谷歌形式的关键(你可以找到它 表格的网址
&LT; yourEntryKey&gt;可以通过查看源代码找到 表格(在源代码中找到“entry。”)
&LT; yourvalue&gt;是您要在Google表单中推送的值
然后,当导出xml文件中的数据并执行这段代码时,附加到谷歌电子表格的谷歌表格将包含文件名称的最后一个记录
然后你可以执行以下公式来检索它
=index('Form Responses 5'!B:B,match(max('Form Responses 5'!A:A),'Form Responses 5'!A:A,0))
,其中 - “表单响应5”是包含表单结果
的表单的名称(单引号之间)然后输入以下公式
=IMPORTXML("http://< mywebsite >/tmp/"& index('Form Responses 5'!B:B,match(max('Form Responses 5'!A:A),'Form Responses 5'!A:A,0)), "//dataset//record//")
我自动刷新数据: - )