Centrum skryptów - Microsoft office

Co zrobić, aby zapisać tabelę programu Excel jako obraz?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Co zrobić, aby zapisać tabelę programu Excel jako obraz?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Co zrobić, aby zapisać tabelę programu Excel jako obraz?

-- JB

Cześć Skrypciarze! Odpowiedź

Cześć, JB. Dzień wczorajszy był wyjątkowy dla Skrypciarza piszącego te słowa. Zacznijmy od tego, że jeśli na jego adres przyjdzie list, to nigdy nie jest to list do niego. Zwykle listy takie skierowane są do Obecnego Mieszkańca i zawierają co najwyżej ofertę sprzedaży czegoś zupełnie niepotrzebnego. Z drugiej strony, listy zaadresowane na imię i nazwisko Skrypciarza są jeszcze gorsze, gdyż zawierają rachunki do zapłacenia.

Jednak dzień wczorajszy był wyjątkowy. Otóż Skrypciarz piszący te słowa otrzymał list zaadresowany imieniem i nazwiskiem, przy czym nie był to rachunek. Okazało się, że w okolicy otwarto nowe centrum urody, a Skrypciarz może skorzystać z jego usług z 50-procentową zniżką.

Usługi te polegać miały na przeprowadzeniu „całkowitej odnowy”. Skrypciarz stwierdził, że nie może przegapić takiej okazji, ale wkrótce stało się jasne, że nie będzie to wcale proste. Przykładowo, Skrypciarz nie wiedział, czy warto się zdecydować na czekoladowo-jeżynowy masaż całego ciała, który miał mu „całkiem odmienić skórę”. Zazwyczaj Skrypciarz jest zwolennikiem wszystkiego, co czekoladowe lub jeżynowe, tym razem jednak miał wątpliwości. No i ta całkowicie odmieniona skóra... Może chodziło o łuski albo gruczoły śluzowe?

Jeszcze bardziej problematyczny był gorący koktajl mleczny ze szwajcarską czekoladą do kąpieli stóp. Skrypciarz nie był do tego przekonany – koktajl, w którym ktoś kąpał stopy, zdawał mu się umiarkowanie apetyczny.

Jednak wszelkie jego rozterki rozwiały się, kiedy zobaczył, że z 50-procentową zniżką koktajl kosztuje 299 dolarów. Za 299 dolarów Skrypciarz może w sklepie spożywczym kupić tyle koktajli mlecznych, że nie będzie musiał pić tych, w których wykąpie stopy.

Na kąpiele Skrypciarz zresztą i tak nie ma czasu. Musi pracować:

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True



Set objWorkbook = objExcel.Workbooks.Add()

Set objWorksheet = objWorkbook.Worksheets(1)



objWorksheet.Cells(1,1) = "Operating System"

objWorksheet.Cells(2,1) = "Windows Server 2003"

objWorksheet.Cells(3,1) = "Windows XP"

objWorksheet.Cells(4,1) = "Windows 2000"

objWorksheet.Cells(5,1) = "Windows NT 4.0"

objWorksheet.Cells(6,1) = "Other"



objWorksheet.Cells(1,2) = "Number of Computers"

objWorksheet.Cells(2,2) = 145

objWorksheet.Cells(3,2) = 987

objWorksheet.Cells(4,2) = 611

objWorksheet.Cells(5,2) = 41

objWorksheet.Cells(6,2) = 56



Set objRange = objWorksheet.UsedRange

objRange.Select



Set colCharts = objExcel.Charts

colCharts.Add()



Set objChart = colCharts(1)

objChart.Activate



objChart.Export "C:\Scripts\Test.jpg", "JPG"

Nie będziemy wyjaśniać wszystkich szczegółów tworzenia tabel w programie Microsoft Excel; poświęciliśmy tej tematyce całą serię artykułów (j.ang.). Odnotujemy tylko, że skrypt zaczyna się od utworzenia wystąpienia obiektu Excel.Application. Następnie ustawiamy właściwość Visible na True; daje nam to działające wystąpienie programu Excel w oknie widocznym na ekranie. Teraz, za pomocą metody Add, dodajemy nowy, pusty zeszyt, po czym używamy poniższego wiersza kodu, by połączyć się z jego pierwszym arkuszem:

Set colCharts = objExcel.Charts

colCharts.Add()

Tabela będzie wyglądała tak:

Tabela Excel

Mamy już tabelę, więc możemy się zająć jej wyeksportowaniem jako obrazu. Musimy więc utworzyć odwołanie do naszej tabeli. W tym celu łączymy się z nią (jest to, rzecz jasna, jedyna tabela w kolekcji Charts), a następnie uaktywniamy za pomocą metody Activate:

Set objChart = colCharts(1)

objChart.Activate

Teraz zapisanie tabeli jako obrazu jest łatwe. Wywołujemy metodę Export:

objChart.Export "C:\Scripts\Test.jpg", "JPG"

Jak widać, podajemy tu dwa parametry: kompletną ścieżkę dostępu wyjściowego pliku oraz format, w jakim ma on zostać zapisany. W naszym przykładzie tworzymy plik o nazwie C:\Scripts\Test.jpg w formacie, rzecz jasna, .JPG – stąd parametr „JPG”. Czy można zastosować inne formaty? Jasne, że tak. Z całą pewnością zadziałają parametry .GIF i .PNG. Jak jest z jeszcze innymi formatami? Prawdopodobnie też zadziałają, chociaż nie próbowaliśmy. Skrypciarz piszący te słowa mało ostatnio próbuje – tak jak nie spróbował koktajlu mlecznego do masażu stóp.

Zastanawialiśmy się natomiast, czy nie uwzględnić gorącego koktajlu mlecznego ze szwajcarską czekoladą do kąpieli stóp w nagrodach na Olimpiadzie Skrypciarskiej 2007. Ostatecznie jednak postanowiliśmy pozostać przy 250 laleczkach doktora Scripto. Poza tym, wydawnictwo Manning Publications (j.ang.) dodało do puli nagród 20 kopii nowej książki Bruce'a Payette'a "Windows PowerShell in Action". Czy istnieje lepsza książka o Windows PowerShell? Być może, ale nie słyszeliśmy o niej.

Co zrobić, aby wygrać którąś z tych wspaniałych nagród? No cóż, nie będzie to łatwe: trzeba wziąć udział w co najmniej jednej konkurencji Olimpiady. Tak, tak. Wystarczy się zapisać, aby wziąć udział w losowaniu. Nie mamy co prawda koktajli, budyniów, puddingów, kefirów, jogurtów ani innych kosmetyków, ale laleczki i książki to i tak niezłe nagrody pocieszenia.

 Do początku strony Do początku strony

Centrum skryptów - Microsoft office