logo
03.06.2020 10:16
1
Ahojte,

neviete mi prosim poradit nejaky spolahlivy nastroj, ktory mi skonveruje excel tabulku (85 MB) do MySQL tabulky? Skusal som mnohe online nastroje, ale vzdy to padne zrejme na velkosti subora.

Pripadne nejaky skript v PHP? Prejde taky velky subor?

Vopred dakujem velmi pekne.

it47

Co se právě děje na Webtrhu?

03.06.2020 10:31
2
XLS převést (uložit jako) do CSV a importovat do DB
03.06.2020 13:13
3
Tak asi to nepujde hned. Musis vytvorit samotnou db, pak udelat skript na import a udelat to klidne na dva mensi soubory, pokud to jeden nezvlada. A jestli z csv nebo xls je asi jedno.
03.06.2020 14:13
4
jen pozor, excel generuje obecně nevalidní csv (oddělený středníky, win1250 kódování, windows zalomení řádků, špatné formáty datumových sloupců atd.), málokdy přímý import do mysql/pg projde bez úhony.

Svého času jsem používal ODBC rozhranní z excelu pro přímé nahrávání do mysql. Dnes na to většinou použiji nějaký python balíček (pokud to tedy dělám ručně), něco jako:

Kód:
import pandas as pd
data_xls = pd.read_excel('obrovska_excel_tabulka.xls', 'Sesit1', index_col=None)
data_xls.to_csv('export.csv', encoding='utf-8')
To pak lze nahrát do mysql, ale tabulku musíš vytvořit dopředu (jak zmiňuje david nade mnou), na to jsou samozřejmě také nástroje, ale o žádném klikacím nevím.
03.06.2020 18:13
5
super, vdaka, tak som si napisal vlastny skript, trebalo nastavit max_execution_time aj memory_limit :)

Dakujem :)
05.06.2020 19:16
6
Také jde napsat si do prvního volného sloupce samotný SQL příkazy.
Zjednodušený příklad:
Kód:
  |     A     |     B     |     C     |     D     |
1 | produkt   | popis     | cena      |           |
2 | iPhone 11 | blabla... | 20000     | ="INSERT INTO zbozi SET produkt=""" & DOSADIT(A2; """"; "\""") & """, popis=""" & B2 & """, cena=" & C2 & ";"
Pak buňku roztáhneš na celou tabulku (chápu, že pro 85M soubor to může trochu trvat), a pak jen zkopíruješ ten sloupec do stránky, uložíš do souboru a ten spuštíš.