Kako stvoriti graf iz neobrađenih datoteka s podacima u bilo kojem proizvodu proizvoda

  • Michael Cain
  • 0
  • 5227
  • 1240
Oglas

Ne bi li bilo lijepo imati mogućnost samo otvaranja Excelove proračunske tablice ili Wordovog dokumenta i bez da išta radite, podaci se čitaju izravno iz tekstualne ili CSV datoteke podataka i učitavaju se izravno u grafikon ugrađen na vašu proračunsku tablicu ili Wordov dokument? Ovo je oblik automatizacije pomoću Officeovih proizvoda, jer ako je moguće automatizirati crtanje podataka u sustavu Office, samo razmislite o mogućnostima. Možete automatski učitati podatke u grafikon za izvješće koje sastavljate za šefa - nije potreban unos podataka. Ili možete učitati podatke u grafikon izravno u e-poštu u programu Outlook.

Tehnika za ovo postiže instaliranje dodatka Office Web Components. Nadalje, samo morate konfigurirati nekoliko stvari unutar aplikacije Office koje želite koristiti za uvoz podataka i spremni ste započeti automatizaciju svog izvještajnog posla. Opisao sam neke elemente koje ćemo koristiti u ovom članku u prethodnim člancima VBA Kako možete napraviti vlastitu jednostavnu aplikaciju s VBA Kako možete napraviti svoju vlastitu jednostavnu aplikaciju s VBA Za one od vas koji bi zaista voljeli da bih mogao napisati vlastiti zahtjev, ali nikad prije nisi upisao niti jedan redak koda, provest ću te kroz izradu svog ... ovdje, na MakeUseOf. Nekoliko njih uključivalo je prosljeđivanje podataka između aplikacija s međuspremnikom. Proslijedi bilo koju informaciju između VBA aplikacija pomoću međuspremnika proslijedi bilo koju informaciju između VBA aplikacija Korištenje međuspremnika Jedan od najfrustriranijih dijelova rada s VBA unutar određenih aplikacija je da to nije uvijek jednostavno dobiti dvije prijave na “razgovor” jedno drugom. Možete pokušati za vrlo brze transakcije ..., izvoz Outlook zadataka u Excel Kako izvesti Outlook zadatke u Excel s VBA Kako izvesti Outlook zadatke u Excel s VBA-om Bez obzira jeste li ili ne ljubitelj Microsofta, jedna dobra stvar koja može biti barem je rekao o proizvodima MS Office kako je jednostavno integrirati ih jedan s drugim ... i slati e-mailove iz Excela. Kako poslati e-poštu iz Excelove proračunske tablice pomoću VBA skripti Kako poslati e-poštu iz proračunske tablice u Excelu VBA skripte Naš predložak koda pomoći će vam u postavljanju automatiziranih poruka e-pošte unutar programa Excel pomoću objekata podataka o kolaboraciji (CDO) i VBA skripte. skripta.

Ono što ću vam pokazati je kako kombinirati Office Web Components s skriptom tekstualnih datoteka kako biste stvorili bešavnu, automatiziranu struju podataka iz plošne tekstualne datoteke na vašem računalu u svoj Office proizvod (u našem slučaju Excel). Možete koristiti istu tehniku ​​- uz nekoliko malih izmjena - u programu Word, Outlook ili čak PowerPoint. Bilo koji Officeov proizvod (ili bilo koji drugi proizvod za tu stvar) koji ima VBA podršku za programere, omogućit će vam upotrebu ove tehnike.

Uvoz i stvaranje grafikona iz podataka

Prije nego što možete stvoriti graf iz podatkovnih datoteka, morat ćete prvo omogućiti nekoliko stvari. U ovom primjeru pokazat ću vam kako omogućiti ove značajke u Excelu, ali postupak je gotovo identičan u svim ostalim Officeovim proizvodima.

Prvo, prije nego što se bavite bilo kojim razvojem VBA, morate omogućiti karticu za razvojne programere na alatnoj traci (ako već niste). Da biste to učinili, samo idite u izbornik Opcije, kliknite unutra “Prilagodite vrpcu” i omogućiti “razvijač” kartica.

Natrag u Excle, sad ćete vidjeti “razvijač” pojavljuju se u izbornicima. Kliknite na nju i kliknite na “Način dizajna”. Zatim kliknite na “Pogledaj kod” vidjeti VBA urednika.

Unutar uređivača trebate omogućiti reference koje će vam trebati za kôd koji ću vam dati na posao. Provjerite jeste li instalirali dodatak Office Web Components prije nego što to učinite, u protivnom objekt Microsoft Chart neće biti dostupan.


Kliknite Alati, a zatim Reference i vidjet ćete popis svih referenci koje su dostupne u vašem sustavu. Ako ne znate što su to - reference su u osnovi biblioteke koda i objekata koje možete izvući u svoj vlastiti projekt. To vam omogućuje da napravite neke stvarno cool stvari, ovisno o tome što referenca omogućite. Ako ste upravo instalirali Office Web Components u svoj sustav, morat ćete ga dodati kao novu biblioteku, pa kliknite na gumb Browse da biste pronašli ispravnu .dll datoteku.

Ako ste instalirali Office Web Components, tada se DLL datoteka naziva OWC11.dll i pohranjuje se u c: \ programske datoteke \ zajedničke datoteke \ microsoft shared \ web components \ 11 \

Kliknite potvrdni okvir za “Web komponente Microsoft Office 11.0” reference, a također ne zaboravite odabrati “Microsoft Runtime skripta” i koji će vam omogućiti pristup čitanju ili pisanju iz podatkovnih datoteka.

Sada kada ste dodali referencu, vrijeme je da na listu dodate stvarni grafikon. U Excelu možete dodati kontrole klikom na “Umetnuti” u izborniku za razvojne programere i klikom na ikonu malih alata u kutu ispod “ActiveX kontrole”.

Pomaknite se na “Microsoft Office Chart 11.0” i kliknite U redu.

Napokon se bavimo poslom. Evo kako izgleda shema MS Web Component ugrađena u proračunsku tablicu. Izgledat će jednako ugrađeno u Wordov dokument ili bilo što drugo.


Dakle, u slučaju Excela, želim da grafikon odmah učita podatke iz datoteke podataka nakon otvaranja datoteke radne knjige. Da biste to učinili, idite u uređivač koda klikom na “Pogledaj kod” u izborniku Programeri i dvaput pritisnite Workbook da biste vidjeli kôd radne knjige. Promijenite pravo padajuće mjesto u “Otvorena”. Ovo je skripta koja će se pokrenuti prilikom prvog otvaranja datoteke radne knjižice.


Da bi se grafikon učitao s podacima iz koda, i sam grafikon treba ime. Vratite se na proračunsku tablicu, desnom tipkom miša kliknite grafikon i odaberite Svojstva. Vidjet ćete “Ime” polje s nečim sličnim “ChartSpace1”. To možete promijeniti u bilo što. Nazvao sam svoje “MyChart”.

Također, samo da znate kako izgleda podatkovna datoteka - moja je tekstualna datoteka ispunjena vrijednostima podataka u obliku zarezom. Ta bi datoteka mogla biti bilo što - laboratorijski podaci koji se izvoze s senzora, financijske informacije koje ručno upisuju pripravnici, ili bilo što drugo. Datoteku ćete čitati sa svojim kodom, tako da nije važno kako podaci izgledaju, sve dok znate kako će izgledati svaki redak kad ga program pročita u.

Dakle, sada za zabavu. Pokazat ću vam kôd u malim odjeljcima, tako da nije pretjeran, i objasniti što radi kod. Vrh koda prvo će pročitati sve vrijednosti iz tekstualne datoteke i spremiti ih u dva niza, jednu za x varijable (xVar) i jednu za y varijable (yVar).

Dim fso kao novi FileSystemObject Dim fnum Dim MyFile kao String Dim strDataLine kao string string Dim xVar () kao varijanta Dim yVar () kao varijanta Dim intNumOfLines kao cjelobrojni MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Otvori MyFile Za unos kao # 1 intNumOfLines = 0 Učini dok nije EOF (1) intNumOfLines = intNumOfLines + 1 Unos # 1, strDataLine Unos # 1, strDataLine petlja Zatvori # 1 ReDim xVar (intNumOfLines) ReDim yVfL Inines # InFum InFilines (IntN AsFilines) 1 intNumOfLines = 0 Učinite dok nije EOF (1) Unos # 1, xVar (intNumOfLines) Unos br. 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1 petlja Zatvori # 1

Ovaj kôd u osnovi prolazi kroz datoteku podataka dvaput - prvi put dimenzionirajući nizove tako da su točne duljine potrebne za pohranu podataka, a drugi put za čitanje podataka u te nizove. Ako ne znate što je niz - to je varijabla ili područje za pohranu koja će sadržavati dugački popis vrijednosti kojima možete pristupiti koristeći red koji je vrijednost bila pohranjena u nizu. Na primjer, jedna treća treća bila bi (3).

Sada kada imate dva od ovih niza učitanih sa svim vrijednostima iz vaše podatkovne datoteke, spremni ste te vrijednosti učitati u grafikon koji ste već ugradili. Evo koda koji to čini.

Sa Sheet1.MyChart .Clear .Refresh Set oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "Moje vrijednosti podataka" 'oChart.Interior.Color = "plavi" oChart.PlotArea.Interior.Color = " bijelo "Postavi oSeries = oChart.SeriesCollection.Add With oSeries .Caption =" Moje vrijednosti podataka ".SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line.Color =.DineCaline. .Weight = 2 .Type = chChartTypeLine Kraj sa oChart.HasLegend = Istina oChart.Legend.Position = chLegendPositionBottom Kraj sa

To je “Sheet1.MyChart” koji kôd povezuje sa stvarnim grafikonom koji ste ugradili. Temelji se na onome što ste imenovali. To će se dogoditi kada ga ugradite u Word, Powerpoint ili bilo koji drugi Officeov proizvod. Nećete ga upućivati ​​pomoću “Sheet1”, ali umjesto toga koji element drži grafikon u tom slučaju, kao što je “document1” na primjer u Wordu.

Gornji kôd tada postavlja označavanje i bojanje grafikona, a zatim učitava vrijednosti pomoću “.setdata” metoda za vrijednosti x i y dvodimenzionalnog skupa podataka. Nakon što je gornji kôd završen, pojavit će se sljedeći grafikon.

Ovi podaci su izravno iz tekstualne datoteke. Jedini nedostatak ovdje je što bi datoteke podataka morale biti dvodimenzionalne samo ako želite koristiti gornji kôd. U skup podataka možete dodati više vrijednosti, ali trebali biste modificirati gornji kôd da biste svaki put pročitali treću vrijednost kroz petlju, a zatim duplicirali “SeriesCollection.Add” odjeljka za stvaranje nove serije, a zatim na isti način dodajte u grafikon.

Možda će vam se činiti složenim samo čitanje koda gore, ali nakon što učinite jedan od njih, to je komad torte da ga modificirate bez obzira na vaše potrebe. Možete upotrijebiti isti grafikon i sličan kôd za izradu grafikona, rasipanja ili bilo koje druge vrste grafikona koju želite koristiti s istim objektom. Svestrani je i fleksibilan - i moćan je alat u vašem arsenalu ako imate svoj obožavatelj automatizacije za veću produktivnost.

!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.