Ga naar inhoud
  • 0

CSV kolomnaam veranderen


AlbertUrk

Vraag

19 antwoorden op deze vraag

Aanbevolen berichten

  • 0

De csv-export van FileMaker exporteert ,-gescheiden ipv ;-gescheiden en dus opent zo'n csv niet lekker in Excel. Verder zou je de export kunnen maken door een record toe te voegen met louter de gewenste veldnamen. Je moet dan direct voor je exporteert met bijvoorbeeld sorteren zorgen dat het record met de veldnamen het eerste record wordt.

Het bijgaand voorbeeld heeft daarom een iets andere benadering (die pas vanaf FM 18 mogelijk is).
1) Eerst wordt er op de standaardmanier van FM naar CSV geëxporteerd
2) Dan wordt alle data uit dat resultaat door FM in een variabele gezet
3) In de variabele wordt een eerste lijn met de veldnamen toegevoegd
4) In de varaiabele worden vervolgens alle "," vervangen voor ";"
5) De bestaande gegevens in het exportbestand worden overschreven met de inhoud van de variabele

De veldnamen staan in een xtra tabelletje, maar je kan dat ook simpel "hard" in je script zetten :-)

 

ExportNaarCSV.fmp12

Link naar reactie
  • 0
1 uur geleden zei menno:

De csv-export van FileMaker exporteert ,-gescheiden ipv ;-gescheiden en dus opent zo'n csv niet lekker in Excel. Verder zou je de export kunnen maken door een record toe te voegen met louter de gewenste veldnamen. Je moet dan direct voor je exporteert met bijvoorbeeld sorteren zorgen dat het record met de veldnamen het eerste record wordt.

Het bijgaand voorbeeld heeft daarom een iets andere benadering (die pas vanaf FM 18 mogelijk is).
1) Eerst wordt er op de standaardmanier van FM naar CSV geëxporteerd
2) Dan wordt alle data uit dat resultaat door FM in een variabele gezet
3) In de variabele wordt een eerste lijn met de veldnamen toegevoegd
4) In de varaiabele worden vervolgens alle "," vervangen voor ";"
5) De bestaande gegevens in het exportbestand worden overschreven met de inhoud van de variabele

De veldnamen staan in een xtra tabelletje, maar je kan dat ook simpel "hard" in je script zetten :-)

 

ExportNaarCSV.fmp12 272 kB · 1 download

Dit is iid ook een goede methode wellicht beter omdat de gebruiker de kolomnamen zelf kan veranderen. Ik zie alleen nog niet waar het uitvoerbestand naar toe gaat?

Link naar reactie
  • 0

In regel 7 van het script wordt de variabele $exportpad ingesteld met:

Let ( [ 
	bestandsnaam = "Exportbestand.csv" ; 
	pv = Abs ( Get ( SystemPlatform ) ) - 1 ; 
	pad = "file" & Choose ( pv ; "mac" ; "win" ) & ":" & Get ( DesktopPath ) & bestandsnaam
] ; 
	pad 
)

Dus op je bureaublad. Je zou i.p.v. Get ( DesktopPath ) ook Get ( DocumentsPath ) kunnen gebruiken. (engelse namen van de get-functies werken in alle talen)

Link naar reactie
  • 0
1 uur geleden zei menno:

In regel 7 van het script wordt de variabele $exportpad ingesteld met:


Let ( [ 
	bestandsnaam = "Exportbestand.csv" ; 
	pv = Abs ( Get ( SystemPlatform ) ) - 1 ; 
	pad = "file" & Choose ( pv ; "mac" ; "win" ) & ":" & Get ( DesktopPath ) & bestandsnaam
] ; 
	pad 
)

Dus op je bureaublad. Je zou i.p.v. Get ( DesktopPath ) ook Get ( DocumentsPath ) kunnen gebruiken. (engelse namen van de get-functies werken in alle talen)

Tnx 

Link naar reactie
  • 0
Op 08/11/2020 om 17:27 zei AlbertUrk:

Dit is iid ook een goede methode wellicht beter omdat de gebruiker de kolomnamen zelf kan veranderen. Ik zie alleen nog niet waar het uitvoerbestand naar toe gaat?

Ik heb nog wel een aanvullende vraag. De velden komen tussen aanhalingstekens te staan. Dat is niet de bedoeling, zie het verschil de schermafbeeldingen. Is dit ook te verhelpen?

Schermafbeelding 2020-11-17 om 18.59.00.png

Schermafbeelding 2020-11-17 om 18.59.06.png

Link naar reactie
  • 0

Wijzig:

Substitute ( 
	Quote ( Instellingen::Veldnaam1 ) & "," & 
	Quote ( Instellingen::Veldnaam2 ) & "," & 
	Quote ( Instellingen::Veldnaam3 ) & Char ( 13 ) & 
	$exportdata ; 
	[ Quote ( "," ) ; Quote ( ";" ) ] )

in: 

Instellingen::Veldnaam1 & "," & 
Instellingen::Veldnaam2 & "," & 
Instellingen::Veldnaam3 & Char ( 13 ) & 
$exportdata 

En kijk ook eens in de documentatie en zoek daar de gebruikte functies in op

Link naar reactie
  • 0
1 uur geleden zei menno:

En kijk ook eens in de documentatie en zoek daar de gebruikte functies in op

Whoops 😳🤗 Dat doe ik zeker maar een voorbeeld zegt zoveel meer, daar ben ik dan ook heel dankbaar voor. De oplossing aangedragen werkt perfect behalve dan dat er quotes tussen de velden komen als je het in een tekstverwerker opent. Excel gaat goed. 

Link naar reactie
  • 0

Ik heb trouwens na zitten denken en kwam door verschillende antwoorden te combineren tot een zeer simpele oplossing. De velden uit de oplossing van Menno gebruikt voor de veld namen en vervolgens een variabele gemaakt waar ik alle velden in vang met ; vervolgens in een globaal veld zetten. Dan alleen dat ene veld exporteren. Dat gaat als een trein met heel weinig code.

Dat gaat goed alleen niet bij het openen in excel want dan komen de kolomteksten in één veld. Er is ook altijd wat maar dit lijkt een simpele oplossing

CSV export.fmp12

Link naar reactie
  • 0
20 uur geleden zei AlbertUrk:

Ik heb trouwens na zitten denken en kwam door verschillende antwoorden te combineren tot een zeer simpele oplossing. De velden uit de oplossing van Menno gebruikt voor de veld namen en vervolgens een variabele gemaakt waar ik alle velden in vang met ; vervolgens in een globaal veld zetten. Dan alleen dat ene veld exporteren. Dat gaat als een trein met heel weinig code.

Dat gaat goed alleen niet bij het openen in excel want dan komen de kolomteksten in één veld. Er is ook altijd wat maar dit lijkt een simpele oplossing

CSV export.fmp12 276 kB · 0 downloads

Als csv zit het goed als ik in number open ook heel goed maar als ik in excel open zet hij alle kolomnamen in één veld. Dat is echt een gedoe. Wie weet daar een oplossing voor want dat schijnt wel uit te maken. Kan nu niet de csv export uploaden

Link naar reactie
  • 0
22 minuten geleden zei peerke:

Als ik op de Mac de scriptstap 'automatisch openen' uitzet en het exportbestand open vanuit Excel met de menuoptie 'openen' (dus niet dubbelklikken) en kies voor puntkomma als scheidingsteken, staan de waarden in eigen kolommen .Het is extra werk maar misschien heb je er wat aan.

p

Idd wat apart. Het rare is dat hij niet importeert in de site waar dat moet maar ik ga het eens proberen op deze manier. Dan bewaren en eens kijken of hij dan wel wil importeren

Link naar reactie
  • 0
1 uur geleden zei peerke:

Als ik op de Mac de scriptstap 'automatisch openen' uitzet en het exportbestand open vanuit Excel met de menuoptie 'openen' (dus niet dubbelklikken) en kies voor puntkomma als scheidingsteken, staan de waarden in eigen kolommen .Het is extra werk maar misschien heb je er wat aan.

p

Helaas ook dit resulteert weer in een csv die weer een totaal andere indeling krijgt. :( Wordt een beetje moedeloos. Als zoveel manieren geprobeerd.

Link naar reactie
  • 0

Geen idee of het een optie is maar ik heb (na behoorlijk wat gerommel) het volgende gedaan. In Excel een bestand aangemaakt en dat omgezet in CSV formaat, zodanig dat het ook goed door Excel weer in te lezen was. Weet je meteen het juiste scheidingsteken (in mijn geval ";")

De headers (uit CSV bestand) in een veld geplaatst (kan ook in een variable maar let dan op de (dubbele) quotes en zo). Daarna maak ik de dataregels aan met ExecuteSQL (veldscheiding ";", recordscheiding "¶") , plak beide aan elkaar en schrijf alles weg naar een  bestand met extensie CSV.

Altenatief is een tabel aanmaken met de juiste headers en dan daarheen wegschrijven. Als je die tabel exporteert als mer (merge) dan is die in een keer te lezen met Excel (wel even hernoemen naar csv).

CSV is wel een standaard indeling, maar met de nodige variaties en smaken helaas...

Link naar reactie
  • 0

@AlbertUrk Ik begrijp niet waarom het jou niet lukt. Jouw screenshot verbaast me ook, omdat de aanhalingstekens zijn gedubbeld en dat kan ik zelf niet reproduceren met mijn voorbeeld.

Ik heb daarom mijn eerdere voorbeeldje even uitgebreid en opgeleukt, zodat je precies kan instellen wat je eindresultaat wordt. Je kan kiezen uit 3 verschillende scheidingstekens en je kan aangeven of er tekens om de veldinhoud moeten worden gezet (geen, ' of " ). Tenslotte kan je opgeven of deze datawrapper wel of niet om de veldnamen heen moet.

Voor die instellingen is géén relatie nodig, omdat alle velden van de instellingen "globals" zijn en die werken onafhankelijk van de context.

Het script gaat uit van een standaard FileMaker csv-export, dus met een gewone comma ( , ) als schedingsteken, de veldinhouden in aanhalingstekens ( "" ) en zonder de kolomnamen. Als je iest anders gebruikt, dan zul de logica erna aan moeten passen. Dit bestand werkt goed op een standaard Nederlandse MacOS of Windows 10 computer.

Als je dit voorbeeld in je eigen oplossing wil gebruiken, dan kan je dat het beste als volgt doen:

  • Zorg eerst dat je een tabel hebt die je wilt exporteren
  • Kopiëer en plak als eerste de 3 keuzelijsten uit het voorbeeld naar jouw eigen oplossing
  • Kopiëer en plak vervolgens de tabel "Instellingen" uit het voorbeeld naar jouw eigen oplossing
  • Kopiëer alle objecten van de layout "instellingen", m.u.v. de navigatieknop linksboven (mag natuurlijk wél)
  • Open de layout "Instellingen" die vanzelf is aangemaakt in jouw eigen oplossing
  • Plak daarin de objecten die je zojuist hebt gekopiëerd in het voorbeeld
  • Als laatste importeer (of kopiëer en plak) je het voorbeeldscript in je eigen oplossing
  • Het enige dat je nu nog met doen is andere velden opgeven in regel 9 van het script.
  • Je kan in regel 7 nog de bestandsnaam en het exportpad naar je eigen smaak aanpassen

Als je meer of minder kolommen (velden) hebt om te exporteren, zal je dat zelf moeten weghalen of toevoegen...

TextExport.fmp12

Link naar reactie
  • 0
44 minuten geleden zei menno:

Ik begrijp niet waarom het jou niet lukt. Jouw screenshot verbaast me ook, omdat de aanhalingstekens zijn gedubbeld en dat kan ik zelf niet reproduceren met mijn voorbeeld.

Ja ik snap het zelf ook niet. Nogmaals alles nagelopen en uiteindelijk is het gelukt met jou eerste oplossing. Ik denk toch dat ik iets verkeerds gedaan heb. Hoe dan ook het is nu eindelijk gelukt. Waarschijnlijk ook omdat degene die moest uploaden iets niet goed deed.

Mega bedankt voor je support en ook dat je nog extra moeite genomen hebt. Dat waardeer ik zeer. De laatste oplossing ga ik koesteren wellicht voorde toekomst

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...