Excel brukes til å utveksle data, også data som burde deles i andre formater. En tid tilbake fikk jeg noen databasetabeller, delt opp i fem excel-dokumenter (slik at den som gav meg dataen kunne maile den). Jeg ville (naturlig nok?) ha dette over i mySQL. Av det lærte jeg et par triks.
1. Datoer i Excel må krangles over i mySQL, alternativt kan du gjøre dette:
Lag en ny kolonne for dato.
Legg inn følgende formel i første celle:
=TEKST(A1, YYYY-MM-DD)
(min versjon av Excel er på Norsk, hvis du har en utenlandsk versjon skal TEKST skrives som TEXT)
Så kommer enda en utfordring. For å duplisere formlen ville jeg vanligvis ha klikket og dratt det lille krysset nede i høyre hjørne av cellen, helt ned til nederste rad i kolonnen. Men kolonnen er et titalls-tusen rader lang! Å klikk og dra tar jo evig tid.
Ved å dobbeltklikke på dette likke krysset, så auto-kopieres formelen helt ned til siste rad. Nice.
Lagre som CSV.
2. Excel lagrer CSV-dokumenter med rare tegnsett.
For å importere til mySQL må tegnsettet være noe mySQL skjønner. Ved å bare large som CSV gikk dette i ball for meg. For å enkelt få kontroll på dette åpnet jeg den nylagde CVS-filen i Textmate og lagret den igjen, men da ved å endre tegnsettet til UTF-8 og linjeskift til LF (begge de anbefalte valgene i Textmate).
Vips, importer til mySQL
Jeg bruker Sequal Pro som GUI til mySQL. Her er det en egen «Import…» kommando under «File..».
Hadde vært fint å vite hvorfor Excel-databasetabellene skulle over i mySQL.
Hei Stig.
Akkurat i dette tilfellet i mitt arbeid var det for å kunne jobbe med dataene fra et kraftigere verktøy enn Excel. Materialet er på knappe 5 millioner enkeltrader i de største tabellene, dette håndterer rett og slett ikke Excel.
«Excel-databasetabellene» som du skriver, er jo databaseinnhold, men i «feil format». Excel er ingen database (selv om definisjonen av database kan strekkes dit. MS mener nok selv ogsÃ¥ dette, da de selger MS Access og MS SQL som databaseverktøy).
Det er mange andre gode grunner til å handtere en database i et databasehandteringsverktøy (mysql) og ikke i Excel, først og fremst muligheten for automatisering, skalering og hurtighet. Excel er glimrende til små prosjekter, men ikke så bra til større. Mulighetene i SQL er også en grunn nok i seg selv, det er mye greiere å hente data ut (snevre ned) i SQL enn med de innebygde funksjonene i Excel.
Dette er nok ogsÃ¥ litt av grunnen til at data utleveres i formater som ikke er optimale (som pdf og excel) – de fleste datamaskiner har programvare til Ã¥ vise fram dataen. Det betyr ikke at det er «riktig verktøy» for de som skal noe mer enn Ã¥ se pÃ¥. Tror jeg.
Fyll på med mer Excel-stoff og presentasjon av tørre data, Eirik! Da blir jeg glad.