大型excel(在计算方面)为graphics自动发布数据

我有一个大的Excel文件,产生了很多计算。

结果被用来生成〜20个“复杂”图

我希望这些图表能够在joomla网站上发布,并且当我刷新我的工作簿时,我希望能够“瞬间”刷新(或者稍微延迟一下)

我目前使用的是:

  • Windows 7的

  • excel 2013

  • joomla 3.2.2在OVH上托pipe

我到现在为止尝试

  • 我的第一个想法是保存我的Excel作为一个谷歌电子表格(谷歌驱动器),并从他们的可发布图受益。 它工作正常,但由于我的工作簿中有太多的计算,它(真的)太慢,刷新谷歌电子表格 – >所以这不是一个选项..

  • 我的第二个想法是保持我的Excel,并在同一个excel文件的专用工作表中准备图表所需的数据(*)。 然后使用ftp并将这个范围传递给一个xml文件

(*)数据具有以下列结构

  • GraphId
  • ID
  • types
  • angular色
  • variables
  • 子variables
  • M1(第一个月)
  • M2(第二个月)
  • M36(第36个月)

那么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文件传输到我的网站,以便通过URL http:// <mywebsite> /tmp/file.xml

然后在另一个谷歌电子表格(除了我之前提到的),我使用IMPORTXML函数

= IMPORTXML(http:// <mywebsite> /tmp/file.xml,“// dataset // record //”)

它也工作正常(:-)),这意味着我得到了我的XML文件在谷歌spreadhseet的内容。 所以我可以创build我的图表并发布它们…但是它不会自动刷新,当我刷新我的Excel工作簿(我创build了一个VBAmacros,自动将我的XML文件放在我的网站,当我刷新我的Excel工作簿),因为IMPORTXML谷歌电子表格function只刷新一(或两个)小时的间隔…

我读了很多关于在旧的谷歌电子表格中添加googleclock()函数,但我使用新的谷歌电子表格

到目前为止,我发现刷新importxml函数的方式是删除url的最后一个字符,然后提交,然后重新input最后一个字符,然后重新提交..不是那个自动呵呵… 🙁

任何宝贵的想法是值得欢迎

编辑

最后,我通过在我的google扩展名表格中input一个新的Google表单来find答案

我添加了一个文本input表单,其中应该包含我的xml文件的名称

然后通过使用这里的信息http://justingale.com/2013/09/url-tricks-for-google-forms-pre-populate-and-automatically-submitting-responses/

并添加一些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 

哪里

  • <yourFormKey>是谷歌forms的关键(你可以find它的forms的url

  • 通过查看表单的源代码(在源代码中查找“entry”)可以find<yourEntryKey>

  • <yourvalue>是您要在Google表单中推送的值

然后,当在XML文件中导出数据并执行这段代码时,Google电子表格中附加的Google表单将包含文件名称作为最后一个logging

然后你可以执行下面的公式来检索它

 =index('Form Responses 5'!B:B,match(max('Form Responses 5'!A:A),'Form Responses 5'!A:A,0)) 

其中 – “表单响应5”是包含表单结果的表单(单引号之间)

然后通过input下面的公式

 =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//") 

我得到的数据自动刷新:-)