Jak utworzyć wykres z surowych plików danych w dowolnym produkcie biurowym

  • Edmund Richardson
  • 0
  • 1377
  • 298
Reklama

Czy nie byłoby miło mieć możliwość otwarcia arkusza kalkulacyjnego Excel lub dokumentu Word i bez konieczności robienia czegokolwiek dane są odczytywane bezpośrednio z pliku tekstowego lub pliku CSV i ładowane bezpośrednio do osadzonego wykresu na arkuszu kalkulacyjnym lub dokumencie Word? Jest to forma automatyzacji za pomocą produktów Office, ponieważ jeśli możliwe jest zautomatyzowanie tworzenia wykresów danych w pakiecie Office, pomyśl tylko o możliwościach. Możesz automatycznie ładować dane do wykresu dla raportu, który tworzysz dla swojego szefa - wprowadzanie danych nie jest wymagane. Lub możesz załadować dane do wykresu bezpośrednio do wiadomości e-mail w programie Outlook.

Technika osiągnięcia tego celu polega na zainstalowaniu dodatku Office Web Components. Co więcej, wystarczy skonfigurować w aplikacji Office kilka rzeczy, których chcesz użyć do zaimportowania danych, i możesz rozpocząć automatyzację pracy związanej z raportowaniem. Omówiłem niektóre elementy, które wykorzystamy w tym artykule w poprzednich artykułach VBA Jak stworzyć własną prostą aplikację za pomocą VBA Jak stworzyć własną prostą aplikację za pomocą VBA Dla tych z Was, którzy naprawdę pokochaliby aby móc napisać własną aplikację, ale nigdy wcześniej nie wpisałem ani jednego wiersza kodu, przeprowadzę was przez proces tworzenia ... bardzo na MakeUseOf. Kilka z nich obejmowało przekazywanie danych między aplikacjami za pomocą schowka Przekaż dowolne informacje między aplikacjami VBA za pomocą schowka Przekaż dowolne informacje między aplikacjami VBA za pomocą schowka Jedną z najbardziej frustrujących części pracy z VBA w określonych aplikacjach jest to, że nie zawsze jest to łatwe dostać dwie aplikacje do “rozmowa” do siebie. Możesz wypróbować bardzo szybkie transakcje…, eksportowanie zadań programu Outlook do programu Excel Jak eksportować zadania programu Outlook do programu Excel za pomocą VBA Jak eksportować zadania programu Outlook do programu Excel za pomocą VBA Niezależnie od tego, czy jesteś fanem firmy Microsoft, jedną dobrą rzeczą, która może być powiedziano o produktach MS Office, przynajmniej o tym, jak łatwo jest zintegrować je ze sobą… i wysyłać e-maile z Excela Jak wysyłać e-maile z arkusza kalkulacyjnego Excel za pomocą skryptów VBA Jak wysyłać e-maile z arkusza kalkulacyjnego Excel za pomocą Skrypty VBA Nasz szablon kodu pomoże Ci skonfigurować automatyczne wiadomości e-mail z poziomu programu Excel za pomocą skryptów Collaboration Data Objects (CDO) i VBA. scenariusz.

Pokażę ci, jak połączyć Office Web Components ze skryptami plików tekstowych, aby stworzyć płynny, zautomatyzowany strumień danych z płaskiego pliku tekstowego na komputerze do produktu Office (w naszym przypadku Excel). Możesz użyć tej samej techniki - z kilkoma małymi modyfikacjami - w Word, Outlook, a nawet PowerPoint. Każdy produkt Office (lub dowolny inny produkt w tym zakresie), który ma zaplecze VBA dla programistów, pozwoli ci korzystać z tej techniki.

Zaimportuj i utwórz wykres z plików danych

Zanim utworzysz wykres z plików danych, musisz najpierw włączyć kilka rzeczy. W tym przykładzie pokażę, jak włączyć te funkcje w programie Excel, ale proces jest prawie identyczny w każdym innym produkcie Office.

Po pierwsze, zanim będzie można wykonać programowanie w języku VBA, należy włączyć kartę programisty na pasku narzędzi (jeśli jeszcze tego nie zrobiłeś). Aby to zrobić, po prostu przejdź do menu Opcje, kliknij “Dostosuj wstążkę” i włącz “Deweloper” patka.

Z powrotem w Excle, teraz zobaczysz “Deweloper” pokazać się w menu. Kliknij i kliknij “Tryb projektowania”. Następnie kliknij “Wyświetl kod” aby zobaczyć edytor VBA.

Wewnątrz edytora musisz włączyć referencje potrzebne do kodu, który dam ci do pracy. Zanim to zrobisz, upewnij się, że zainstalowałeś dodatek Office Web Components, w przeciwnym razie obiekt Microsoft Chart nie będzie dostępny.


Kliknij Narzędzia, a następnie Referencje, a zobaczysz listę wszystkich referencji, które są dostępne w twoim systemie. Jeśli nie wiesz, co to są - referencje to w zasadzie biblioteki kodu i obiekty, które możesz pobrać do własnego projektu. Umożliwiają one robienie naprawdę fajnych rzeczy, w zależności od włączonego odniesienia. Jeśli właśnie zainstalowałeś Office Web Components w swoim systemie, musisz dodać go jako nową bibliotekę, więc kliknij przycisk Przeglądaj, aby znaleźć odpowiedni plik .dll.

Jeśli masz zainstalowane składniki Office Web Components, plik DLL nazywa się OWC11.dll i jest przechowywany w folderze c: \ program files \ common files \ microsoft shared \ web components \ 11 \

Kliknij pole wyboru obok “Microsoft Office Web Components 11.0” odniesienia, a także nie zapomnij wybrać “Środowisko wykonawcze skryptów Microsoft” również, co daje dostęp do odczytu lub zapisu z plików danych.

Po dodaniu odwołania nadszedł czas, aby dodać rzeczywisty wykres do arkusza. W programie Excel możesz dodawać elementy sterujące, klikając “Wstawić” w menu Deweloper i klikając małą ikonę narzędzi w rogu pod “Formanty ActiveX”.

Przewiń do “Microsoft Office Chart 11.0” i kliknij OK.

W końcu zabieramy się do pracy. Oto, jak wygląda wykres MS Web Component osadzony w arkuszu kalkulacyjnym. Będzie wyglądać tak samo osadzony w dokumencie Word lub cokolwiek innego.


Tak więc w przypadku programu Excel chcę, aby wykres natychmiast ładował dane z pliku danych po otwarciu pliku skoroszytu. Aby to zrobić, przejdź do edytora kodu, klikając “Wyświetl kod” w menu Deweloper i kliknij dwukrotnie skoroszyt, aby wyświetlić kod skoroszytu. Zmień odpowiednią listę rozwijaną na “otwarty”. Jest to skrypt, który zostanie uruchomiony przy pierwszym otwarciu pliku skoroszytu.


Aby załadować wykres danymi z kodu, sam wykres potrzebuje nazwy. Wróć do arkusza kalkulacyjnego, kliknij wykres prawym przyciskiem myszy i wybierz polecenie Właściwości. Zobaczysz “Nazwa” pole z czymś takim “ChartSpace1”. Możesz to zmienić na cokolwiek. Zadzwoniłem do mnie “MyChart”.

Ponadto, abyś wiedział, jak wygląda plik danych - mój to plik tekstowy wypełniony wartościami danych w formacie rozdzielanym przecinkami. Tym plikiem może być wszystko - dane laboratoryjne eksportowane z czujników, informacje finansowe wpisywane do pliku ręcznie przez stażystów lub cokolwiek innego. Będziesz wczytywał plik wraz ze swoim kodem, więc nie ma znaczenia, jak wyglądają dane, o ile wiesz, jak będzie wyglądać każda linia, gdy program ją wczyta.

A teraz część zabawy. Pokażę ci kod w małych sekcjach, aby nie był przytłaczający, i wyjaśnię, co robi kod. Początek kodu najpierw odczyta wszystkie wartości z pliku tekstowego i zapisze je w dwóch tablicachx, jednej dla zmiennych x (xVar) i jednej dla zmiennych y (yVar).

Dim fso As New FileSystemObject Dim fnum Dim MyFile As String Dim strDataLine As String Dim xVar () As Variant Dim yVar () As Variant Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Otwórz MyFile Dla danych wejściowych jako # 1 intNumOfLines = 0 Wykonaj, gdy nie jest EOF (1) intNumOfLines = intNumOfLines + 1 Wejście nr 1, strDataLine Wejście nr 1, strDataLine Pętla Zamknij nr 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Otwórz jako MyFile 1 intNumOfLines = 0 Do While EOF (1) Input # 1, xVar (intNumOfLines) Input # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1 Loop Close # 1

Ten kod w zasadzie przebiega przez plik danych dwa razy - po raz pierwszy zwymiaruj tablice, aby były one dokładną długością potrzebną do przechowywania danych, a następnie drugi raz, aby odczytać dane w tych tablicach. Jeśli nie wiesz, co to jest tablica - jest to zmienna lub obszar pamięci, który będzie zawierał długą listę wartości, do których można uzyskać dostęp przy użyciu kolejności, w jakiej wartość była przechowywana w tablicy. Jedna ładowana trzecia to na przykład (3).

Teraz, gdy dwie z tych tablic zostały załadowane wszystkimi wartościami z pliku danych, możesz załadować te wartości do wykresu, który już osadziłeś. Oto kod, który to robi.

Z Sheet1.MyChart .Clear .Refresh Set oChart = .Charts.Dodaj oChart.HasTitle = True oChart.Title.Caption = „Moje wartości danych” oChart.Interior.Color = „niebieski” oChart.PlotArea.Interior.Color = " biały "Ustaw oSeries = oChart.SeriesCollection.Add With oSeries .Caption =" Moje wartości danych ".SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line.Color =" niebieski ".Line.DashSashle = chine. .Weight = 2 .Type = chChartTypeLine End With oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottom End With

To jest “Arkusz 1. Mój wykres” który łączy kod z rzeczywistym osadzonym wykresem. Opiera się na tym, jak go nazwałeś. Tak będzie w przypadku osadzenia go w programie Word, Powerpoint lub innym produkcie Office. Nie będziesz go polecał za pomocą “Arkusz 1”, ale zamiast tego w tym przypadku dowolny element zawiera Wykres, na przykład “dokument 1” na przykład w programie Word.

Powyższy kod następnie konfiguruje etykietowanie i kolorowanie wykresu, a następnie ładuje wartości za pomocą “.setdata” metoda dla wartości x i y 2-wymiarowego zestawu danych. Po uruchomieniu powyższego kodu pojawi się następujący wykres.

Te dane są prosto z pliku tekstowego. Jedyną wadą jest to, że pliki danych będą musiały być dwuwymiarowe tylko, jeśli chcesz użyć powyższego kodu. Możesz dodać więcej wartości do zestawu danych, ale musisz zmodyfikować powyższy kod, aby za każdym razem wczytywać trzecią wartość przez pętlę, a następnie zduplikować “SeriesCollection.Add” sekcji, aby utworzyć kolejną serię, a następnie dodaj ją do wykresu w ten sam sposób.

Może się to wydawać skomplikowane po przeczytaniu powyższego kodu, ale po wykonaniu jednego z nich modyfikacja go w zależności od potrzeb jest bardzo prosta. Możesz użyć tego samego wykresu i podobnego kodu do utworzenia wykresu słupkowego, wykresu rozrzutu lub dowolnego innego typu wykresu, którego chcesz używać z tym samym obiektem. Jest wszechstronny i elastyczny - i jest potężnym narzędziem w twoim arsenale, jeśli jesteś fanem automatyzacji dla większej wydajności.

!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.