webForumDet fria alternativet

Hur göra ett grafiskt användargränsnitt, GUI för att läsa in CSV-filer

Programmering

9 svar · 1 764 visningar · startad av erciz

Medlem sedan maj 20011 826 inlägg
Frågan#1

Det är ganska vanligt att man läser in kommaseparerade textfiler, CSV-filer till program.

Hur gör man på ett bra sett en sån inläsning i användargränssnittet. Där CSV-filen kan ha lite olika format. Det ska läsas in till en tabell med ett visst antal namngivna kolumner.

På nåt sätt lär ju användaren markera vilka CSV-kolumner som går till vilka kolumner i tabellen. Finns det nån snygg lösning för detta i grafiska användargränssnitt? Någon som kan förklara eller kanske t.o.m. kan bidra med en skärmdump?

För inspiration såg jag den här tråden, om Excel och CSV-filer: http://www.webforum.nu/showthread.php?t=178099

Medlem sedan maj 20011 826 inlägg
#2

Hittade en skärmdump, men det känns inte så intuitivt. Det är svårt att göra ett bra GUI för detta tycker jag.
http://www.dekart.com/fileadmin/en/News/Graphics/import-contacts-CSV.png

Medlem sedan juli 200012 978 inlägg
#3

Om du kollar hur Access läser in till databasen så har du en bra start.

Medlem sedan maj 20011 826 inlägg
#4

Lasp skrev:

Om du kollar hur Access läser in till databasen så har du en bra start.

Har tyvärr inte tillgång till Access. Är det nåt liknande den skärmdump jag länkade till eller är det någon smartare lösning?

Antar att det bör vara nåt smart med Drag-n-Drop för att göra detta användarvänligt.

Medlem sedan sep. 2006867 inlägg
#5

Då skulle jag välja att presentera de första raderna i cvs-datat.

Ibland har man tur och då finns kolumnnamn med som första raden i cvs-filen, då ska man kunna välja dessa.

Under eller bredvid visar man tillgängliga fält i databasen, så kan man drag'n'droppa varje kolumn på varje tabellfält.

Man bör också kunna göra operationer av olika slag på cvs-fälten innan man importerar, tex läsa in datum i ett visst format och lagra i ett annat, låta allt få små eller stora bokstäver, appenda ett prefix/suffix på varje värde i en kolumn, eller hoppa över en rad beroende på något kriterie som man kan specifiera tex. med regexp.

Osv. Ett riktigt proffsigt verktyg låter en dessutom skapa egna regler eller sammanslagna regler!

Medlem sedan maj 20011 826 inlägg
#6

Lasp skrev:

Om du kollar hur Access läser in till databasen så har du en bra start.

Du har inte en skärmdump att bjuda på eller möjligtvis en liten beskrivning om hur det går till?

Medlem sedan feb. 20013 023 inlägg
#7

Kolla import av textfiler i Excel!

Medlem sedan maj 20011 826 inlägg
#8

Jag har varken tillgång till Access eller Excel eller nån annan Microsoft Office-product. Men hur som helst så kollade jag nu hur OpenOffice.org Calc löser det. Det var snyggt, men det är inget jag kan använda. Jag antar att OpenOffice och Microsoft Office löser detta på ett liknande sätt.

Skillnaden är att Excel, Access och Calc inte har några förutbestämda kolumner, inga speciella typer för kolumnerna. Då blir det enkelt, eftersom det bara är att dra in filen.
Det blir annat om jag har förutbestämda fält och typer, då kanske det inte blir enklare än den skärmdump som jag länkade till i mitt andra inlägg.

Medlem sedan maj 20011 826 inlägg
#9

headbug skrev:

Då skulle jag välja att presentera de första raderna i cvs-datat.

Ibland har man tur och då finns kolumnnamn med som första raden i cvs-filen, då ska man kunna välja dessa.

Under eller bredvid visar man tillgängliga fält i databasen, så kan man drag'n'droppa varje kolumn på varje tabellfält.

Man bör också kunna göra operationer av olika slag på cvs-fälten innan man importerar, tex läsa in datum i ett visst format och lagra i ett annat, låta allt få små eller stora bokstäver, appenda ett prefix/suffix på varje värde i en kolumn, eller hoppa över en rad beroende på något kriterie som man kan specifiera tex. med regexp.

Osv. Ett riktigt proffsigt verktyg låter en dessutom skapa egna regler eller sammanslagna regler!

Den här varianten får det bli. Men operationer på fält som du föreslog tror jag att jag väntar lite med. Tack för förslaget.

Medlem sedan juni 20014 290 inlägg
#10

Titta lite på import guiden som excel har och som i princip följer detta flödet:

  1. Välj om det är fast bredd eller avskilt av något tecken
  2. Om det är avskilt, isåfall vilket/vilka och hur skall upprepande tecken hanteras (ex: ;;)
  3. Visa kolumnerna och ange vad det är för data (skippa, text, numerisk, datum ...)
  4. Importera

Hela tiden visas en förhandsgranskning hur det kommer att bli.

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)