Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 1. 4. 2015 13:21:51

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 12

Import html tables do calcu - VYŘEŠENO !!!!

dobrý den

Potřebuji poradit jak dostat html stránku do calcu.
Něco jsem stvořil ale nic to nedělá.

Sub import_html
dim vyber, bunka, document, dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
REM This is an array from 0 To 0 of type PropertyValue
Dim args1(0) As New com.sun.star.beans.PropertyValue
Dim sURL As String 'URL of the document to load
sURL = "file:\\\C:\Web\Vysl_mix_tipsportu.htm/Fotball.ods/uprava_tpsp"
args1(0).Name = "HTML_Tables"
args1(0).Value = True
dispatcher.executeDispatch(document, ".uno:file:\\\C:\Web\Vysl_mix_tipsportu.htm", "", 0, Array())
'StarDesktop.LoadComponentFromUrl(sURL, "file:\\\C:\Web\", 0, args1())
End Sub

Předem moc a moc děkuji Franta

vyřešeno!!!!!!!!!!

Sub nabidka_tpsp
dim url As String
   Dim oDoc, oSelection As Object
   Dim oAddress As new com.sun.star.table.CellAddress
'Call nastavoblast_proImport
   oDoc = ThisComponent
   oSelection = oDoc.getCurrentController().getSelection()
   if oSelection.supportsService("com.sun.star.sheet.SheetCell") then
      oAddress = oSelection.getCellAddress()
      oDoc.AreaLinks.insertAtPosition(oAddress,"file:///C:/Web/Nab_1_mix_tipsportu.htm","HTML_Tables","calc_HTML_WebQuery","0 0")
   endif
End Sub

vyřešeno!!!!!!!!!!

Editoval Frantaxy (13. 7. 2015 11:19:50)

Offline

#2 1. 4. 2015 15:31:12

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Import html tables do calcu - VYŘEŠENO !!!!

To, co jste volal makrem je lokální soubor htm. Makro hledá soubor na disku C složka WEB. viz

.uno:file:\\\C:\Web\Vysl_mix_tipsportu.htm

     Vy zřejmě chcete aktualizovat Calc z webu. To se ale dělá jinak. Dáte vložit odkaz na externí data - dáte tam adresu - například https://www.tipsport.cz/kurzy.
     Nyní musíte stisknout ENTER. (Mělo by tam být tlačítko, ale není - proto jste zřejmě zvolil otevřít z disku. Nabídka tam je)
     Následně vyskočí volba jazyka a speciálních čísel. Předvolená je čeština. Dáte OK a za chvilku vyskočí obsah stránky podle prvků. Těch je tam hodně. nejspíš bychom zvolili "Table", ale doporučuji nejdřív vše (All) - potvrdit volbu.



     Do sešitu se nám vloží obsahy, které jsou podivně rozházeny a nejsou v češtině. To je trošku problém. Kódování stránky je v UTF8 - cs a to do sešitu nedostaneme. Ovšem rozložení ač divné, je logické a dá se s tím pracovat.
     Existuje pracnější postup. Zkopírovat celou stránku a do Calcu ji vložit jako HTML. Nyní už je čeština česká, ale buňky rozhozené nelogicky. je nutno vybrat vše, stisknout "sloučit buňky" - tím se veškeré sloučení odstraní a pak manuálně smazat nepotřebné buňky tak aby nabídky (a podobně) byly logicky pod sebou.
     Nejlepší postup : Nejprve stránku uložit z browswru do toho Vašeho foldru "WEB". V Calcu zadat vložit odkaz na externí data - dáte tam adresu z místního disku C:/WEB (nebo tak jak si to uložíte). Vyskočí dialogy řeč - potvrdíte a vyberete Table. Dostanete jak logické uspořádání, tak češtinu.
     Problém znakové sady odstraní OS. problémem zůstane aktualizace dat. Musíte vždy znovu stáhnout celou stránku z netu, ale to je rychlé a snadnější, nežli ostatní metody. Po otevření Calcu se odkazy aktualizují automaticky, nebo to zadáte v nabídce Üpravy - odkazy. Tam doporučuji vše mimo Table ručně smazat (chvíli to potrvá, ale vyplatí se to). Pak můžete zvolit tlačítkem UPRAVIT načítání a podobně.
     Existují sice ještě další možnosti, ale problém je v tom, že ne vždy je webovka ve formátu HTML (HTTP), nebo HTML security (HTTPs) - ale ve formátu php a podobně. Z toho lze načítat prakticky jenom tak jak uvádím. Co se dá uložit se načte - co nejde načíst můžete jen manuálně zkopírovat, nebo preparovat ze zdrojáku stránky.



     Teprve na to je možné postavit makro. To ale nemá cenu protože máte aktivní odkazy, které se načtou při otevření (nebo podle nastavní například po minitě ap.) Šlo by sice udělat makro aby se to našetlo z netu a uložilo, ale měl byste plno kravin, které nejsou potřeba. Při prvním vložení se to manuálne promaže a je navždy klid.
     Problém vznikne, když portál změní strukturu stránky - pak je to nutné upravit. To se ale děje zřídka. Když se stím naučíte pracovat, tak Vám to půjde rychle. Neexistuje univerzální postup pro všechny typy webových stránek.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 3. 4. 2015 03:03:55

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 12

Re: Import html tables do calcu - VYŘEŠENO !!!!

Dobrý večer

Já ty stránky ukladam na disk a pak si makro načte stránku z disku.
Přímo bez manažeru.
V Excel 2013 to chodilo.
    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;file:///D:/zal_moje-zw81/Vysl_TIPSPORTU/18.9.2014/Výsledky%20_%20Tipsport.%20Nejvetší%20komunita%20sázkaru.htm" _
        , Destination:=Range("$A$1"))
        .Name = "Výsledky%20_%20Tipsport.%20Nejvetší%20komunita%20sázkaru_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """tblEventsId"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With

Ale v LibreOffice 4.4.2.2. to nechce chodit.
Potřebuji poradit jak to upravit do libre
Předem děkuji  Franta

Offline

#4 3. 4. 2015 09:14:50

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,435

Re: Import html tables do calcu - VYŘEŠENO !!!!

Jde o funkčnost, nebo o důkaz v LibreOffice to makrem také jde?
     Určitě vytvořit makro, které supluje to z Excelu jde, ale někdo se tomu asi musí věnovat. Nejspíš jako hotové to bude někde na cizích fórech. Jinak to musí nekdo postavit a ladit dokud to nebude v pořádku. To může chvíli trvat.
     Běžný import asi půjde bez problému, ale bude to UTF8 - nečeská čeština, nelogicky rozházené buňky ap. Takže makro musí podobně jako Excel přeformátovat (což je prakticky vše mezi With a End With). Basic má trošku jinou syntaxi ale ze zkušenosti vím, že doslova přetypovat E:C nejde, nebo je to pro "C" lepší jinak.



     Omlouvám se - já osobně rád vyhovím každému, ale jen z plezíru - to ne. Na to já čas nemám. Snad někdo jiný.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí