Как вернуть несколько столбцов данных с помощью ImportXML в таблицах Google? - PullRequest
4 голосов
/ 05 мая 2010

Я использую ImportXML в электронной таблице Google для доступа к методу user_timeline в API Twitter .Я хотел бы извлечь поля created_at и text из ответа и создать отображение результатов в двух столбцах.

В настоящее время я делаю это, дважды вызывая API, набрав

=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/created_at")

в ячейке вверху одного столбца и

=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/text")

в другом.

Есть ли способ для меня, чтобы создать этот дисплей с помощью одного вызова

Ответы [ 4 ]

5 голосов
/ 27 августа 2013

ImportXML поддерживает использование разделителя xpath | для включения любого количества запросов.

=ImportXML("http://url"; "//@author | //@catalogid| //@publisherid")

Однако не расширяет результаты в несколько столбцов. Вы получаете один столбец повторяющихся триплетов (или сколько угодно выбранных вами атрибутов), как показано ниже в столбце A.

Следующее устарело

2015.06.16: continue недоступно в «новых Google Sheets» (см. Документация Google для continue).

Однако вам не нужно использовать автоматически вставленную функцию CONTINUE() для размещения результатов.

=CONTINUE($A$2, (ROW()-ROW($A$2)+1)*$A$1-B$1, 1)

Помещено в B2, которое должно заполняться и заполняться вправо, чтобы дать вам вменяемые данные столбца.

example screenshot

  • ImportXML находится в A2.
  • A3 и ниже, как функции CONTINUE() заполняются автоматически.
  • A1 - количество атрибутов.
  • B1:D1 - индекс атрибута для их столбцов.
4 голосов
/ 15 апреля 2011

Просто объедините ваши запросы с "|"

=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/created_at | /statuses/status/text")
1 голос
/ 03 ноября 2013

Другой способ преобразовать строки = CONTINUE () в столбцы - использовать transpose ():

=transpose(importxml("http://url","//a | //b | //c"))
0 голосов
/ 22 августа 2016

Я задал этот вопрос на форуме поддержки Google, и это решение помогло мне:

=ArrayFormula(QUERY(QUERY(IFERROR(IF({1,1,0},IF({1,0,0},INT((ROW(A:A)-1)/2),MOD(ROW(A:A)-1,2)),IMPORTXML("http://example.com","//td/a | //td/a/@href"))),"select min(Col3) where Col3 <> '' group by Col1 pivot Col2",0),"offset 1",0))

Замените содержимое IMPORTXML вашими данными и запросом и посмотрите, подходит ли это вам. I

По-видимому, это пытается вызвать функцию IMPORTXML только один раз. По крайней мере, пока это решение.

Вот полная нить .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...