|
[ konislav @ 19.01.2010. 10:53 ] @
| Imam na jednoj sajtu odredjene tabele izvor, koje bi ja da importujem u excel da bi ih dalje obradjivao. Medjutim to meni nikako ne polazi od ruke. Ako bi hteli da pokusate da ovu ili ostale tabele prebacite u excel.
[Ovu poruku je menjao konislav dana 19.01.2010. u 12:05 GMT+1] |
[ ib.kroki @ 19.01.2010. 12:09 ] @
Podaci za OUTCOME PREDICTION % ( 1 X 2 TIPS) prikazani su kao fotografija i to pravi problem za kopiranje podataka iz tabele.
[ konislav @ 19.01.2010. 22:33 ] @
Dali imas ideju kako bi se to moglo resiti?
[ timmy @ 20.01.2010. 01:20 ] @
Evo jednog polovicno automatizovanog resenja.
1. Otvori stranicu u browseru
2. Prikazi Page Source
3. Kopiraj taj kod u Word ali sa Paste Special/Unformatted text
4. Koristi sledeci kod da izbacis slike
Code:
Public Sub SrediHTML()
Zameni "[<]img src=im/1?.gif[>]", "1"
Zameni "[<]img src=im/2?.gif[>]", "2"
Zameni "[<]img src=im/X?.gif[>]", "X"
Zameni "[<]img src=im/1X?.gif[>]", "1X"
Zameni "[<]img src=im/12?.gif[>]", "12"
Zameni "[<]img src=im/X1?.gif[>]", "X1"
Zameni "[<]img src=im/X2?.gif[>]", "X2"
Zameni "[<]img src=im/21?.gif[>]", "21"
Zameni "[<]img src=im/2X?.gif[>]", "2X"
End Sub
Private Sub Zameni(strSlika As String, strOznaka As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = strSlika
.Replacement.Text = strOznaka
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
5. Ostaje jos samo da sav ovaj kod prebacis u neki HTML editor i otvoris u browseru
ili da iz Word-a snimis kao .txt pa ga preimenujes u .htm
6. Otvori taj fajl u browseru i kopiraj tabelu u Excel kao sto bi to i inace uradio
Sve bi ovo moglo da se automatizuje da se odradi na klik iz recimo Forme/prozora u Wordu,
tj. da se sav nepotreban HTML kod odbaci i podaci direktno posalju u Excel...
Al' dosta i ovo za pocetak
Pozdrav
[ konislav @ 20.01.2010. 11:19 ] @
Fvala na odgovoru, medjutim ceo taj postupak mi je malo zamoran tako da cu probati da nadjem neko resenje da se sve to odradi iz excel-a, normalno da sam ja spreman platiti za pristojno uradjenu aplikaciju, ali za ponude mozete se javiti na PP.
[ timmy @ 21.01.2010. 02:14 ] @
Na pomenutom sajtu koriste vise nacina da sto vise otezaju skidanje podataka,
ali najcesce tako sto brojke prikazuju slikama a glavni problem je sto tih slika ima
mnogo pod raznoraznim imenima i pitanje kada ce se koji metod kodiranja upotrebiti.
Drugim recima, ako ovo ne bude radilo probaj da uradis refresh (F5 u browseru)
pa ponovo import. Ako i tada ne radi, ili ces se rucno igrati sa HTML kodom koji
je prikazan u desnom delu ekrana ili bi trebalo da promenimo metod konverzije.
Program cita pasus po pasus stranice, odbacuje nepotrebno i pravi izmene (Find/Replace)
za ono sto bi trebalo da ostane u tabeli....
Probaj....
Pozdrav

[ konislav @ 22.01.2010. 14:01 ] @
HVALA PUNO za brzo, funkcionalno i majstorsko resavanje mojeg problema!!!
[ ib.kroki @ 23.01.2010. 09:54 ] @
@timmy
SVAKA TI ČAST ZA OVU APLIKACIJU!!!
Šta kod mene nije u redu ako mi prikazuje
jan.45 umesto 1,45
mar.80 umesto 3,80
jun.95 umesto 6,95
Pokušavao sam formatirati ćelije kao broj sa dve decimale i dobijem
16.438,00 a trebalo bi 1,45
29.281,00 a trebalo bi 3,80
34.851,00 a trebalo bi 6,95
P.S.
Vidim da si ti radio u Office 2007, ja koristim Office 2003.
[ timmy @ 23.01.2010. 10:29 ] @
Problem je u tome sto su podaci na sajtu u US regionalnim podesavanjima
(koja i ja koristim pa se nisam ni trudio da razmisljam o konverziji u eventualno SR).
Probaj da promenis u Regional Settings na US, mislim da ce tada da ti odradi kako treba.
Pozdrav
[ Catch 22 @ 23.01.2010. 11:28 ] @
^ Ili samo u trenutnim regionalnim podešavanjima, privremeno da promeni "Decimal symbol" i "Digit grouping symbol"?
U slučaju da koristi Excel 2007, to može i u samom Excelu da definiše
[att_img]
[ 3okc @ 23.01.2010. 13:14 ] @
Što se tiče decimalnog simbola - da li postoji neka konstanta/funkcija kojom bismo istu očitali?!?
Proučio sam "read only" f-je ;) tipa CELL, INFO i ovde nema ovog podatka.
Ne bi bio neki problem da se napiše CustomFn za ovo ali bi bilo lepo ako može direktno.
U tom slučaju bi mogao da formiraš f-ju sa
IF {decimal}="," THEN REPLACE ...
[ timmy @ 23.01.2010. 13:31 ] @
Ja sam do sada u VB koristio ovaj kod
Code: Private Declare Function GetLocaleInfo Lib "KERNEL32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Const LOCALE_SDECIMAL = &HE
Private Declare Function GetThreadLocale Lib "KERNEL32" () As Long
Private Declare Function GetSystemDefaultLCID Lib "KERNEL32" () As Long
Private Declare Function GetUserDefaultLCID Lib "KERNEL32" () As Long
Private Function GetDecimalSep() As String
Dim LCID As Integer
Dim Data As String
Dim Ret As Integer
Dim DataLen As Long
' Get the local decimal seperator
' Find the threads local
LCID = GetThreadLocale
' Find the required size of the output variables
Ret = GetLocaleInfo(LCID, LOCALE_SDECIMAL, Data, DataLen)
If Ret <> 0 Then
' prepare the output variable
DataLen = Ret
Data = Space(DataLen)
Ret = GetLocaleInfo(LCID, LOCALE_SDECIMAL, Data, DataLen)
Else
' Error no data found
' enter some good error handling here, using GetLastError()
End If
' Remove the null terminator from the string
GetDecimalSep = Left(Data, DataLen - 1)
End Function
Sto je jedno univerzalno resenje zasnovano na Windows API.
Moze da se nadje na http://www.bigresource.com/Tracker/Track-vb-DaOAzrTgiK/
Ali bi u Excel-u bilo dovoljno
Code: Public Function DecSym() As String
If WorksheetFunction.IsNumber("3,5") Then DecSym = "," Else DecSym = "."
End Function
Pozdrav
[ 3okc @ 23.01.2010. 16:52 ] @
Što se tiče rešenja u Excelu, mislio sam na nešto što bi isključilo potrebu za pisanjem VBA-Fn, ali, ako već mora, onda tu već imamo konstantu koju možemo koristiti:
Application.International(xlDecimalSeparator)
A ovo rešenje sa WorksheetFunction mi se sviđa jer otprilike rešava problem. Doduše, ne shvatam baš zašto bismo pisali CustomFn koja koristi ExcelFn?! :) ali mi se kao ideja dopalo. :)
Ovakvo kako jeste, rešenje ne radi iz prostog razloga što " neki broj" neće biti broj, sve dok je u navodnicima tako da je neophodna konverzija. Međutim, konverzija bi, sa "pravim tekstom" proizvodila grešku, pa je ovo možda način na kojim bismo stigli do rešenja: uz ISERROR()
Code: =ISERROR(-"3,5")
TRUE => xlDecimalSeparator = "."
FALSE => xlDecimalSeparator = ","
Na netu sam našao npr i ovakve CustomFn
Code: Public Function GetDecPoint() As String
GetDecPoint = Format$(0, "#.#")
End Function
ali ovo prosto nije pouzdano. Sigurno greši barem kada se radi sa "instant" podešavanjem koje nudi v2007 (a koje Catch 22 citira)
[ 3okc @ 29.01.2010. 17:53 ] @
Nažalost, i dalje nema dobrog rešenja putem Excel-Fn: ni ova "modifikovana" verzija ne radi zadovoljavajuće!
Dolazi do pogrešnog proračuna u slučaju kada imamo:
1) txt-broj rastavljen tačkom
2) text-brojeve koji su jednocifreni sa jednocifrenom decimalom
3) i radimo sa lokalnim podešavanjima gde je "zarez" DecimalSeparator.
Naime, Excel će ovaj "tekst" prilikom konverzije protumačiti kao datum - budući da je tačka ovde regularan separator i konverzija neće proizvesti grešku. Naprotiv, dobićemo neki sumanuti :) celi broj.
Pokrivanje i ovih slučajeva jeste moguće ali, jednostavno, dobijam preterano dugačku formulu za ovako "mali" problem.
[ dejann75 @ 31.01.2010. 23:09 ] @
zasto mi se u nekim redovima umesto brojeva koji su na sajtu,pojavljuje 8>,7>,0> ? trebalo bi da pise 64,22,14 ..... i to se javlja samo u prve tri kolone,gde stoji "outcome predictions %"... nije veliki problem,posto tih par parova moze i rucno da se upise,ali cisto informativno...
i da li moze ovo da se iskoristi i za neke druge sajtove?
[ konislav @ 24.02.2010. 00:37 ] @
Ima jedan mali problem koji se pojavljuje pri koriscenju makoa koji je prilozen ovde kao resenje problema. Makro radi sasvim dobro ako se ucitava aktuelna ponuda, medjutim problem nastaje kada probam da importujem tabele iz arhive. Kada pokusam da importujem tabela koje su date (ima ih sedam) makro importuje samo prvu tabelu, ostale sest se ne mogu importovati.
DAli neko ima objasnjenje zbog cega se javlja ovaj problem i dali se nekako moze otklonit.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|