Vinnaren i pepparkakshustävlingen!
2022-08-19, 13:29
  #121
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Bonnatorp
Nu när det verkar gå framåt igen så måste jag nog ändå ta tag i det här med databaser då det ska skalas upp.
Nuvarande program är anpassat endast till excel, genom openpyxl.
När jag körde alla företag i Jönköping med lite grunddata plus senaste tre årens ekonomi så blev det runt en halv miljon celler, och excel är ju inte riktigt anpassat för de storlekarna.
Det funkar för ändamålet, men det blir segt så in i norden.
Dessutom tänkte jag utöka det hela nu med att scrapa företagens befattningshavare med deras kontaktinformation också. Första idén jag fick var att länka flikar, där varje företag får varsin flik med ytterligare data, men det kommer helt enkelt inte funka med en halv miljon celler i första fliken och femtontusen flikar till med ytterligare information.

Det blir bara för mycket

Så, efter mången rekommendation ska jag ge mig in på databaser.
Om det relativt smidigt går att exportera från SQL till excel vore det trevligt, eftersom det fortfarande är i excel slutprodukten ska finnas.
Jag fick tips av en kollega om microsoft access. Har ingen aning om hur det står sig mot SQL, men det lär ju fungera smidigt mot excel iallafall.
Däremot kommer jag ändå behöva lära mig SQL för utbildningen jag börjar snart, så det är lika bra att börja på det nu.

Så, jag kan i princip inget alls om SQL.
Vilken ände börjar man i?
Vilket program torde jag köra?
Är det lättintegrerat med excel?
Undvik Access. Kör MariaDB (en fork av MySQL) eller PostgreSQL som båda är FOSS.
Man kan relativt enkelt göra resultatet från en SQL-query till CSV som sedan kan importeras till Excel för "tillsnyggning"
__________________
Senast redigerad av Enterprise 2022-08-19 kl. 13:33.
Citera
2022-08-19, 22:42
  #122
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Enterprise
Undvik Access. Kör MariaDB (en fork av MySQL) eller PostgreSQL som båda är FOSS.
Man kan relativt enkelt göra resultatet från en SQL-query till CSV som sedan kan importeras till Excel för "tillsnyggning"
PostgreSQL var ett perfekt förslag, visade sig senare under dagen att det är samma vi kommer använda under utbildningen.

Jae, databasen blir nog av iallafall. Vore schysst om jag kan göra den enkelt tillgänglig online för intressenter.
Men efter lite mer funderande insåg jag att primärproblemet låg lite i hur jag skulle presentera det hela i excelform ändå.
Istället för länkade flikar får det bli länkade filer, det blir mer lätthanterligt för klenare datorer. Så en kommun med 15.000 företag skulle ha en primärfil med 15.000 rader och några få kolumner som gör det hela möjligt att filtrera, och därefter länka varje rads ytterligare data till två andra filer för vardera rad, som ligger i en intilliggande mapp. Det känns rimligt att excel borde kunna länka filer genom relativa referenser då det är ett så gammalt koncept.
Så 30.001 filer för en sådan kommun.

Det påminner mig, jag måste verkligen investera i en större SSD med bra skrivtålighet om jag ska hålla på så här.
Hoppas jag kan övertyga chefen om att köpa en skattefri sådan för min räkning istället för att ge mig lön jag måste skatta, när det väl rullar på lite mer.
__________________
Senast redigerad av Bonnatorp 2022-08-19 kl. 22:45.
Citera
2022-08-20, 20:59
  #123
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Enterprise
Undvik Access. Kör MariaDB (en fork av MySQL) eller PostgreSQL som båda är FOSS.
Man kan relativt enkelt göra resultatet från en SQL-query till CSV som sedan kan importeras till Excel för "tillsnyggning"
Den här frågan nu gäller både sedan när det ska exporteras från SQL till excel, och hur jag kan göra det med openpyxl direkt när det samlas i python (eller annan modul).
Primärt med python, eller direkt i excel.

Jag behöver länka en cell med ett företagsnamn i (alternativt organisationsnummer, antagligen bättre för referenserna) till en cell i ett annat dokument som har samma namn som texten i den första cellen.
Allra helst i en mapp som ligger intill huvuddokumentet, så det inte blir så svårt att hitta det bland en uppsjö av dokument.

Hur kan man automatisera det för flera rader?
Citera
2022-08-20, 22:08
  #124
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Bonnatorp
Den här frågan nu gäller både sedan när det ska exporteras från SQL till excel, och hur jag kan göra det med openpyxl direkt när det samlas i python (eller annan modul).
Primärt med python, eller direkt i excel.

Jag behöver länka en cell med ett företagsnamn i (alternativt organisationsnummer, antagligen bättre för referenserna) till en cell i ett annat dokument som har samma namn som texten i den första cellen.
Allra helst i en mapp som ligger intill huvuddokumentet, så det inte blir så svårt att hitta det bland en uppsjö av dokument.

Hur kan man automatisera det för flera rader?
Jag är lite skeptisk till din grunddesign. Hade varit bättre att ha en hemsida som kunden får logga in på för att få fram den data som man behöver. Nåväl, det verkar som att det går att automatisera skapandet av hyperlänkar (till andra Excel-filer) i Openpyxl: https://stackoverflow.com/questions/...cells-openpyxl (Ej testat av mig)

Att skapa nya excel-filer i Openpyxl är ju enkelt.
Citera
2022-08-20, 22:42
  #125
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Enterprise
Jag är lite skeptisk till din grunddesign. Hade varit bättre att ha en hemsida som kunden får logga in på för att få fram den data som man behöver. Nåväl, det verkar som att det går att automatisera skapandet av hyperlänkar (till andra Excel-filer) i Openpyxl: https://stackoverflow.com/questions/...cells-openpyxl (Ej testat av mig)

Att skapa nya excel-filer i Openpyxl är ju enkelt.
Jo skapa filerna är så klart lätt, men hur väljer man en annan mapp att spara ett xlsx-dokument i än den mapp python körs från?

Jo en hemsida vore schysst, men det skulle ta en massa tid.
Har fått pikar om att jag borde göra ett interface, men det vill jag verkligen inte. Då hade jag börjat plugga webbdesign istället.
Föredrar backend då det i bästa fall innebär "säg åt datorn att tänka fram den här siffran/texten".
Frontend innebär en massa dilemman om hur det ska se ut, och ger mig värre beslutsångest än chipshyllan.
__________________
Senast redigerad av Bonnatorp 2022-08-20 kl. 22:50.
Citera
2022-08-20, 23:02
  #126
Medlem
Citat:
Ursprungligen postat av Bonnatorp
Jo skapa filerna är så klart lätt, men hur väljer man en annan mapp att spara ett xlsx-dokument i än den mapp python körs från?

Jo en hemsida vore schysst, men det skulle ta en massa tid.
Har fått pikar om att jag borde göra ett interface, men det vill jag verkligen inte. Då hade jag börjat plugga webbdesign istället.
Föredrar backend då det i bästa fall innebär "säg åt datorn att tänka fram den här siffran/texten".
Frontend innebär en massa dilemman om hur det ska se ut, och ger mig värre beslutsångest än chipshyllan.

Din kund måste vara rejält tålmodig för att vänta 6 månder...

Hmm jag har tappat bort var du är, men jag svarar dig:

Du kan använd os.path.join() för att lägga ihop en adress dit du vill spara filen.
https://docs.python.org/3/library/os.path.html

Sedan skulle jag rekommendera Flask med Alchemy om du skall hålla på med webb och Postgress.
Med Flask/Django blir en fronend skitenkel att göra i Python. Inget grafiskt alls. Allt blir en kod och den bara ploppar upp som en sida i webbläsaren (sälja, javisst!).
Jag förstår fortfarande inte varför du bara lät selenium skrapa upp skiten du skall ha och sedan omvandla return till Pandas.DataFrame och från Pandas.DataFrame till .xslx?
Citera
2022-08-20, 23:24
  #127
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Methos
Din kund måste vara rejält tålmodig för att vänta 6 månder...

Hmm jag har tappat bort var du är, men jag svarar dig:

Du kan använd os.path.join() för att lägga ihop en adress dit du vill spara filen.
https://docs.python.org/3/library/os.path.html

Sedan skulle jag rekommendera Flask med Alchemy om du skall hålla på med webb och Postgress.
Med Flask/Django blir en fronend skitenkel att göra i Python. Inget grafiskt alls. Allt blir en kod och den bara ploppar upp som en sida i webbläsaren (sälja, javisst!).
Jag förstår fortfarande inte varför du bara lät selenium skrapa upp skiten du skall ha och sedan omvandla return till Pandas.DataFrame och från Pandas.DataFrame till .xslx?
6 månader?
Till vadå?
Tar kanske en timme att scrapa en genomsnittlig lista de kan sitta några dagar med.

Snålade in på tiden med dataframes för att... ja, jag behövde lära mig något nytt då (även om det är relativt litet, jag vet), och att hämta fler datapunkter med nuvarande upplägg innebär bara lite mer klippa och klistra, i princip.
Hade jag fortfarande varit singel och jobbat deltid, ja då hade jag lagt mer tid på det hela i ett tidigare skede, men har man redan heltidsjobb, tre barn och en fru man gärna vill umgås med så blir det lätt lite grovhugget i kanterna.

Men nu när jag tänker lite på det, jag behöver självklart nästan bara byta ut kommandona som sparar till excel till pandaskommandon istället, så det skulle nog inte vara jätteomständigt egentligen.
Men det kändes så för någon månad sedan.

os.path() såg finemang ut, tackar!
__________________
Senast redigerad av Bonnatorp 2022-08-20 kl. 23:28.
Citera
2022-08-20, 23:31
  #128
Medlem
Citat:
Ursprungligen postat av Bonnatorp
6 månader?
Till vadå?
Tar kanske en timme att scrapa en genomsnittlig lista de kan sitta några dagar med.

Snålade in på tiden med dataframes för att... ja, jag behövde lära mig något nytt då (även om det är relativt litet, jag vet), och att hämta fler datapunkter med nuvarande upplägg innebär bara lite mer klippa och klistra, i princip.
Hade jag fortfarande varit singel och jobbat deltid, ja då hade jag lagt mer tid på det hela i ett tidigare skede, men har man redan heltidsjobb, tre barn och en fru man gärna vill umgås med så blir det lätt lite grovhugget i kanterna.

Men nu när jag tänker lite på det, jag behöver självklart nästan bara byta ut kommandona som sparar till excel till pandaskommandon istället, så det skulle nog inte vara jätteomständigt egentligen.
Men det kändes så för någon månad sedan.

os.path() såg finemang ut, tackar!

Selenium return till dict eller list, set eller vad som.
pd.from_vadsom()
df.to_excell(fil)


Det enda som tar kod är ditt seleniumprojekt. Pandas är 4 kodsnuttar om du nu inte skall manipulera data.
Citera
2022-08-20, 23:35
  #129
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Methos
Selenium return till dict eller list, set eller vad som.
pd.from_vadsom()
df.to_excell(fil)


Det enda som tar kod är ditt seleniumprojekt. Pandas är 4 kodsnuttar om du nu inte skall manipulera data.
Det låter lovande.
Men kan jag använda pandas till att länka celler i dokumenten till andra dokument, eller måste jag behålla openpyxl för det ändå?
Citera
2022-08-20, 23:41
  #130
Medlem
Citat:
Ursprungligen postat av Bonnatorp
Det låter lovande.
Men kan jag använda pandas till att länka celler i dokumenten till andra dokument, eller måste jag behålla openpyxl för det ändå?

Länka till andra dokument?
Du kan manipulera celler inom DataFrame, du kan ladda flera filer och göra flera DataFrame och lägga ihop. Men jag tror inte att du kan länka två separata celler i två filer. Går det ens med openpyxl?

Se bara till att inte ha för många tredjepartsmoduler när du skall göra dessa slagningar du gör. Tänk på att på att tid verkligen är valuta här och varje modul du kör kostar tid. fastän pandas har fyra kodrader så ligger det över tusen rader i bakgrunden och kör i DataFrame-klassen. Samma gäller givetvis med openpyxl och även selenium (som är den värsta tidstjuven av dem alla).
Citera
2022-08-21, 00:03
  #131
Medlem
Bonnatorps avatar
Citat:
Ursprungligen postat av Methos
Länka till andra dokument?
Du kan manipulera celler inom DataFrame, du kan ladda flera filer och göra flera DataFrame och lägga ihop. Men jag tror inte att du kan länka två separata celler i två filer. Går det ens med openpyxl?

Se bara till att inte ha för många tredjepartsmoduler när du skall göra dessa slagningar du gör. Tänk på att på att tid verkligen är valuta här och varje modul du kör kostar tid. fastän pandas har fyra kodrader så ligger det över tusen rader i bakgrunden och kör i DataFrame-klassen. Samma gäller givetvis med openpyxl och även selenium (som är den värsta tidstjuven av dem alla).
Jo excel kan ju hyperlänka till andra dokument. Förhoppningsvis kan cellen innehålla både en dold hyperlänk och en synlig text.
Det borde gå genom att rendera formlerna för det i cellerna i värsta fall, det är lite i det teoretiska stadiet än så länge. Har inte hunnit just något idag eller igår.
Men ifall det blir till att rendera excelformler redan med python så torde det gå lika bra i pandas, hoppas jag.

Enterprise länkade iallafall ett förslag som ser rimligt ut.
Får testa det i veckan, har svärmorsbesök och bil att laga.
__________________
Senast redigerad av Bonnatorp 2022-08-21 kl. 00:05.
Citera
2022-08-21, 10:30
  #132
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Bonnatorp
Jo excel kan ju hyperlänka till andra dokument. Förhoppningsvis kan cellen innehålla både en dold hyperlänk och en synlig text.
Det borde gå genom att rendera formlerna för det i cellerna i värsta fall, det är lite i det teoretiska stadiet än så länge. Har inte hunnit just något idag eller igår.
Men ifall det blir till att rendera excelformler redan med python så torde det gå lika bra i pandas, hoppas jag.

Enterprise länkade iallafall ett förslag som ser rimligt ut.
Får testa det i veckan, har svärmorsbesök och bil att laga.
Om jag vore dig skulle jag släppa Pandas. Pandas är väldigt bra för att göra beräkningar på stora data-set t.ex. statistik. Men i ditt fall använder du väl Excel-filen snarare som en databas med uppgifter i och då har jag svårt att se att Pandas hjälper dig.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback