[Excel] Importeren CSV-bestand: onjuiste celeigenschappen

Pagina: 1
Acties:
  • 1.585 views sinds 30-01-2008
  • Reageer

  • Wok
  • Registratie: Augustus 2001
  • Laatst online: 19:08

Wok

Dakloos...

Topicstarter
Op mijn werk liepen we gisteren tegen een probleem aan. In onze database moeten wel regelmatig picklocaties wijzigen. Hiervoor exporteren we de huidige lijst van picklocaties naar een CSV-bestand en bewerken dat in Excel. Daarna importeren we het nieuwe bestand.

offtopic:
Dit is een proces dat niet geautomtiseerd kan worden. Er is namelijk geen algoritme wat de picklocaties voor ons kan wijzigen, omdat dit per dag/week/maand/whatever kan variëren naar gelang de situatie van dat moment.


Vanuit onze database maken we een export naar een CSV-bestand. Als we het bestand openen in (bijvoorbeeld) Kladblok, ziet het er bijvoorbeeld als volgt uit:
code:
1
2
3
4
DU205/50V15SSP2;4;101;BIN;30D0510;30D0510;stuks
DU205/50V15SSP2;6;101;BIN;30D0510;30D0510;stuks
BR195/60V15SB390;1;101;BIN;30E0010;30E0010;stuks
GO205/55V15SEV;10;101;BIN;30E0020;30E0020;stuks

Dit is dus een fragment van het totale bestand

Het gaat hier om de vijfde en zesde kolom: dit zijn de aanduidingen voor onze picklocaties in het magazijn. In het voorbeeld hebben we dus locatie 30D0510 en locatie 30E0010. Als we het CSV-bestand openen in Excel, maakt Excel van locatie 30E0010 standaard een wetenschappelijk getal. Dit is dus NIET de bedoeling, omdat Excel dan 3,00E+11 in de cel noteert. Ter vergelijking: picklocatie 30D0510 wordt wel correct weergegeven.

Als ik de Celeigenschappen raadpleeg voor beide picklocaties, dan staat 30D0510 ingesteld op Standaard en 30E0010 op Wetenschappelijk. Als ik alles selecteer en alle celeigenschappen op standaard zet, blijft de foute notatie (3,00E+11) gehandhaafd. Het veranderen naar Tekst geeft 3E+11, wat dus ook niet goed is.

Op basis van wat men dus invoert in een cel, bepaalt Excel automatisch welke notatie gehanteerd wordt. Dit willen we dus niet hebben bij het importeren van het bestand. Mijn vraag luidt dus: hoe kan ik voorkomen dat Excel zelf de notatie bepaalt bij het importeren van een bestand?

Who is General Failure and why is he reading my hard drive?


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21-08 21:44

MBV

geen excell gebruiken? Ik heb geen idee, je kan een macro'tje maken dat controleert op wetenschappelijke notaties, en daar aan de gebruiker vragen "wat had je gehad willen hebben?

  • Wok
  • Registratie: Augustus 2001
  • Laatst online: 19:08

Wok

Dakloos...

Topicstarter
MBV schreef op 20 april 2004 @ 17:57:
geen excell gebruiken? Ik heb geen idee, je kan een macro'tje maken dat controleert op wetenschappelijke notaties, en daar aan de gebruiker vragen "wat had je gehad willen hebben?
Excel niet gebruiken is niet echt een optie. Het bestand is namelijk vrij groot en om dat nu in Notepad te editten lijkt me een aardig stressvol karweitje. Ter illustratie: hier staat een voorbeeld van een bestand wat bewerkt moet worden.

Werken met macro's? Ik zou dan een macro moeten maken waarmee ik een bestand selecteer om te openen en voordat het bestand daadwerkelijk wordt geïmporteerd, kan de gebruiker de celeigenschappen bepalen? Als dit de/een correcte denkwijze is, zou je me dan enige handreikingen kunnen geven om zo'n macro te kunne maken. Ben zelf namelijk niet zo'n Excel-goere ;)

/edit:

Note: het achteraf wijzigen van de celeigenschappen is dus niet mogelijk, omdat de gegevens door Excel dan al zijn verneukt :|

[ Voor 9% gewijzigd door Wok op 20-04-2004 18:05 ]

Who is General Failure and why is he reading my hard drive?


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 14:50

Maasluip

Kabbelend watertje

Het is (nog niet eens een beetje) slordig dat Excel geen mogelijkheid geeft om formatteringen aan de kolommen toe te kennen.

Een mogelijkheid is om het file niet als .csv maar als .txt op te slaan. Als je het dan wil openen gaat Excel je vragen of het een vaste lengte formaat of scheidinstekenformaat is. Dan geef je aan dat het scheidingsteken ; is en formatteer je kolom E en F als tekst.

De slordigheid van Excel gaat nog verder: als je het nu als .csv opslaat heb je weer precies hetzelfde probleem. Maar goed, als je het opslaat kun je net zo goed als .xls opslaan.

Als je een macro laat opnemen bij het openen dan kun je het automatiseren.

Signatures zijn voor boomers.


  • Wok
  • Registratie: Augustus 2001
  • Laatst online: 19:08

Wok

Dakloos...

Topicstarter
Maasluip schreef op 20 april 2004 @ 18:14:
Het is (nog niet eens een beetje) slordig dat Excel geen mogelijkheid geeft om formatteringen aan de kolommen toe te kennen.

Een mogelijkheid is om het file niet als .csv maar als .txt op te slaan. Als je het dan wil openen gaat Excel je vragen of het een vaste lengte formaat of scheidinstekenformaat is. Dan geef je aan dat het scheidingsteken ; is en formatteer je kolom E en F als tekst.

De slordigheid van Excel gaat nog verder: als je het nu als .csv opslaat heb je weer precies hetzelfde probleem. Maar goed, als je het opslaat kun je net zo goed als .xls opslaan.

Als je een macro laat opnemen bij het openen dan kun je het automatiseren.
Ik heb het even geprobeerd en inderdaad: als ik het als tekstbestand open kan ik zelf de format bepalen voor de betreffende kolommen. Het is wat extra werk, maar het werkt in ieder geval (het is nog steeds minder werk dan alle picklocaties weer handmatig in te moeten typen ;) )

Ik ga vanavond eens even proberen een macro in elkaar te zetten :)

Who is General Failure and why is he reading my hard drive?


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Dit is misschien een heel gek voorstel, maar als de data al in een database zit is het dan niet handiger om een simpele applicatie te maken waarmee je die pick-locaties kan wijzigen?

Dan voorkom je juist dit soort fouten en ook gebruikersfouten.

Of zit het in een mainframe of zo?

[ Voor 8% gewijzigd door Lister op 20-04-2004 21:54 ]


  • Wok
  • Registratie: Augustus 2001
  • Laatst online: 19:08

Wok

Dakloos...

Topicstarter
Lister schreef op 20 april 2004 @ 21:54:
Dit is misschien een heel gek voorstel, maar als de data al in een database zit is het dan niet handiger om een simpele applicatie te maken waarmee je die pick-locaties kan wijzigen?

Dan voorkom je juist dit soort fouten en ook gebruikersfouten.

Of zit het in een mainframe of zo?
Dit is trouwens helemaal geen gek voorstel! :) Ik ben niet geheel op de hoogte van wat exact de bedoeling is met dit bestand (wat ik heb genoemd, is wat ik er van begrepen heb :P ). Ik zal deze week eens even navragen wat precies de bedoeling is, want binnen Navision (daar werken we mee) kan ik iets als wat jij voorstelt wel ontwikkelen. Heel goed punt, dank je! :)

Who is General Failure and why is he reading my hard drive?

Pagina: 1