2012-11-27 14 views
5

Używam Google Apps Script i EmbeddedChartBuilder do umieszczania wykresów liniowych w moim arkuszu kalkulacyjnym Google. Kiedy tworzysz te wykresy ręcznie, masz opcję (nie domyślną) do "Użyj kolumny A jako etykiet" (gdzie "A" jest pierwszą kolumną w zakresie danych). Nie mogę znaleźć sposobu, by zrobić to samo ze skryptu. Z dokumentacji Google Visualization Line Chart wynika, że ​​domyślnie traktujemy pierwszą kolumnę jako rolę "domeny"; ale EmbeddedChartBuilder wydaje się nadpisać to i nadaje wszystkim kolumnom rolę "danych". Ponieważ nie mam wyraźnej DataTable, nie mam możliwości samodzielnego ustawienia column roles.Skrypt Google Apps: jak ustawić "Użyj kolumny A jako etykiet" na wykresie umieszczonym w arkuszu kalkulacyjnym?

Czy brakowało mi sposobu, aby to zrobić? Czy muszę zmienić podejście z EmbeddedChartBuilder na using the spreadsheet as a data source?

Odpowiedz

12

Znaleziono! Ustaw opcję useFirstColumnAsDomain na true na .

Ta opcja wydaje się być nieudokumentowana. Znalazłem go, przechodząc do "Opublikuj wykres" (kliknij na wykres, następnie wybierz z menu w prawym górnym rogu) i sprawdź strukturę danych JavaScript w danym kodzie. Dokładnie, utworzyłem wykres z niezaznaczonym "Użyj kolumny A jako etykiety", wziąłem strukturę danych publikowania, następnie zaznaczono "użyj kolumny A jako etykiety", złapałem nową strukturę danych publikowania i porównałem dwie. Aby porównać, sugeruję normalizing the JSON i działa diff. Ta technika może być użyta do przywrócenia ustawień dowolnych ustawień w edytorze wykresów.

+0

Czy to nadal pracuje dla nikogo? Próbowałem przez godzinę bez powodzenia –

+1

Doskonale, dziękuję! Tak to działa. w przypadku wykresów osadzonych jest to dokładna składnia: '.setOption ('useFirstColumnAsDomain', true)' wewnątrz bloku ** chartBuilder **. –

2

Po prostu doświadczyłem tego samego problemu. Podobał mi się podobnie jak Andrew, ale znalazłem inne rozwiązanie (prawdopodobnie dlatego, że Google dodał funkcjonalność do swoich wykresów w Arkuszach kalkulacyjnych).

Użyłem http://jsbeautifier.org/ do sformatowania kodu po opublikowaniu i uznałem, że ta część jest odpowiedzialna za dodawanie etykiet danych. Pamiętaj, że możesz nawet zmienić kolor trzpienia łączącego paska na tabliczce znamionowej:

"series": { 
        "0": { 
         "errorBars": { 
          "errorType": "none" 
         }, 
         "dataLabel": "value", 
         "annotations": { 
          "stemColor": "none" 
         } 
        }, 
        "color": "black", 
        "targetAxisIndex": 0, 
        "annotations": { 
         "textStyle": { 
          "color": "red", 
          "fontSize": 12 
         } 
        } 
       }, 
+0

@DaveGhidui, czy mogę skontaktować się z Tobą, aby uzyskać działanie tego skryptu w moim przypadku użycia? Nie jestem dobry w JS i nie udało mi się połączyć twojego skryptu z dokumentacją Google przywołaną przez OP. –