Forum: Mikrocontroller und Digitale Elektronik Excel Datei erzeugen und auf SD-Karte speichern


von Fatih T. (alibaba06)


Lesenswert?

Hallo Ihr!

ich habe ein ATMega32u4. Daran wird angeschlossen werden ein 
SD-Karten-Slot.
Mit dem ATMega32u4 wird eine Langzeitmessung (paar Wochen bis Monate) 
eines Sensors über die I²C-Schnittstelle durchgeführt und die Messdaten 
werden auf die SD-Karte gespeichert. Die SD-Karte bekommt noch ein 
FAT16-Dateisystem verpasst. Normalerweise kein großes Problem. Aber die 
Messwerte müssen am Ende von xy Wochen/Monaten aufgelistet nach Datum, 
Uhrzeit, Blaa als eine Excel-Datei auf der SD-Karte vorhanden sein.
Nun meine Fragen.
1. Welches "Format" hat eine Excel-Datei?
2. gibt es verschiedene Excel-Datei-Arten?
3. wie umfangreich ist die ganze Sache?
4. wie stell ich das am blödsten an damit man zum Schluss die SD-Karte 
nimmt in sein Laptop schiebt und mit Excel die Messwert-Excel-Datei 
öffnet und die Messwerte vor seiner Nase hat?

DANKE! für euren Support schonmal :)


(später kommt noch vllt dazu dass die gleiche Datei auch als pdf-datei 
im uC vorliegt...? )

von Jens B. (nixiefreak)


Lesenswert?

Einfachste Lösung die mir einfällt: Speicher die Daten als .txt ab, und 
schreibe dir ein Programm, dass beim Einstecken der SD-karte in den 
Rechner per Autorun die .txt in eine Excel konvertiert.

Gruß
Jens

von Karl H. (kbuchegg)


Lesenswert?

> 1. Welches "Format" hat eine Excel-Datei?

Natives Excel Format willst du dir ganz sicher nicht antun.
Aber Excel kann ganz prima sog. CSV Dateien lesen.

Das ist einfach ein Textformat, bei dem die einzelnen Spalten mit ; 
voneinander getrennt sind.

Einziges Problem: Excel zieht das konsequent durch, dass es in der 
Deutschen Version ein ',' und keinen '.' als Dezimalpunkt haben will.

von Algengrütze (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Einziges Problem: Excel zieht das konsequent durch, dass es in der
>
> Deutschen Version ein ',' und keinen '.' als Dezimalpunkt haben will.

Das lässt sich beim Import aber umstellen!

von Fatih T. (alibaba06)


Lesenswert?

Danke erstmal für die Raschen Antworten :)

@Jens: des geht leider nicht, da die SD-Karte in vielen verschiedenen 
PCs und Laptops eingelesen werden können müssen und es ist unsicher 
wieviele pcs oder laptops es sind... leider :(


@Karl Heinz: des mit CSV hört sich gut an, können alle excel versionen 
damit umgehen? hast du da vllt ein link für mich wo ich mir des CSV 
genauer anschauen kann?

thx @ all

von Peter Z. (hangloose)


Lesenswert?


von Fatih T. (alibaba06)


Lesenswert?

oO stimmt ja google... thx

von Jens B. (nixiefreak)


Lesenswert?

Fatih T. schrieb:
> @Jens: des geht leider nicht, da die SD-Karte in vielen verschiedenen
> PCs und Laptops eingelesen werden können müssen und es ist unsicher
> wieviele pcs oder laptops es sind... leider :(

Das Programm ist dann natürlich auf der SD-Karte, das ist vollkommen 
unabhängig vom Betriebssystem. Kannst es ja in Java programmieren.

von Fatih T. (alibaba06)


Lesenswert?

@Jens: also auf der SD-Karte steht ganz am Anfang eine Info für den 
PC(Betriebssystem), die dem PC sagt, dass die folgende .txt datei als 
Excel-Datei geöffnet werden soll?

von Fatih T. (alibaba06)


Lesenswert?

sorry ich frag so blöd weil ich noch keine Ahnung von 
Windowsprogrammierung habe.

von Martin H. (marrtn)


Lesenswert?

Pack doch einfach eine Excel-Datei auf die SD-Karte. In dieses 
Excel-File packst Du ein Makro, dass die aufgezeichneten Daten (was auch 
immer für ein Format) aus einem vom µC angelegten File importiert und 
ggf. aufhübscht.

von Bit-Hund (Gast)


Lesenswert?

In EXCEL einfach Datei öffnen und unter Dateityp *.csv wählen. Fertig!

Hat mit Windoof-Programmierung nix zu tun. Ein wenig lesen schadet 
nicht.

von Fatih T. (alibaba06)


Lesenswert?

@Bit-Hund: lies erstmal selber :) des mit csv hat nix mit 
windowsprogrammierung zu tun.. ich meine die Lösung von Jens, dass die 
Info für den PC auf der sd-karte drauf ist... richtig zu lesen schadet 
auch nicht.

von Bit-Hund (Gast)


Lesenswert?

Fatih T. schrieb:
> ich meine die Lösung von Jens, dass die
> Info für den PC auf der sd-karte drauf ist... richtig zu lesen schadet
> auch nicht.

Dann sei nicht so faul und nenne den Bezug! Gescheit Schreiben schadet 
auch nix!

von oszi40 (Gast)


Angehängte Dateien:

Lesenswert?

1.Einfach Daten als Text mit Komma separiert schreiben und als txt oder 
umbenannt als .csv eim Excel einlesen.

2.Das oben bereits beschriebene Makro wäre nur ein Sahnehäubchen um die 
Sache zu automatisieren.

von Fatih T. (alibaba06)


Lesenswert?

@Bit-Hund: schlaf dich einfach mal aus.... du bist ja ganz neben der 
Spur.... Wenn ich mehr Ahnung von der Sache hätte könnte ich auch 
"gescheid" was schreiben.. aber wenn ich mehr Ahnung hätte würde ich gar 
ned erst den Drang verspüren irgendetwas hier ins Forum zu schreiben, da 
ich mir selber helfen könnte... und jetzt träum was süßes!

@oszi40: danke ich werd es warscheinlich auch so machen!

Danke nochmal an alle die ausgeschlafen sind! :)

von Weingut P. (weinbauer)


Lesenswert?

Hab vor Ewigkeiten mal sowas gemacht indem ich anstatt in XLS in XML 
geschrieben habe.

von Jens B. (nixiefreak)


Lesenswert?

Also ich meine das so:

Auf Wechseldatenträgern gibt es immer eine Datei namens autorun.inf, 
siehe hier: http://de.wikipedia.org/wiki/Autorun#autorun.inf

Dadrin wird unter Anderem auf Programme verwiesen, die automatisch 
starten, wenn die Karte sich bei Windows anmeldet. Genau so wie bei 
Installations-CDs, die automatisch den Setup starten.

Jetzt verbietet dir ja niemand, dieses Programm, was ausgeführt wird, 
auf der SD-Karte zu speichern, genau das machen besagte Setup-CDs ja 
auch. Und dieses Programm kann dir dann die Konvertierung erstellen, 
oder weiß der Henker. Ist eben eine quasi-automatische Lösung.

Gruß
Jens

von keinLichtAufGing (Gast)


Lesenswert?

@Fatih T.: Wie K.H.B. schrieb, die "echten" Excel-Formate wirst Du
wohl nicht auf den Atmega bekommen. Selbst wenn Du dir antun wolltest
die Formate zu verstehen, habe ich Zweifel, dass Du eine entsprechende
Library in den Flash hineinquetschen kannst (und von der SD-Karte
nachladen wird mit dem uC wohl auch schwierig ;-)

Die Excel-Datei in XML könnte gehen, wenn Du ein Template ablegst
und dann nur noch wie einen Serienbrief ausfüllst. Hängt davon ab,
wieviel Flash-Speicher Du spendieren kannst.

@Jens: Ich weiss nicht, aber mir würde das nicht so gefallen, wenn
ein Gerät eine SD-Karte automatisch so präpariert, dass beim Einstecken
automatisch ein Programm gestartet wird (das die Daten auf der Karte
dann auch noch automatisch verändert...)

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Vergeßt diesen ganzen Auto-Programm-Kram. Spätestens der erste Linux- 
MacOS oder Antiviren-Programm stoppt den Versuch.

Schreib eine CSV-Datei nach Excel-Denkweise (Semikolon statt Komma, 
Komma statt Punkt).
Die kann jedes Excel öffnen können und es sieht dann aus wie eine 
einfache Tabelle. In die erste Zeile kann man auch auch Bezeichnungen 
schreiben.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Was Excel aus csv macht ist mehr oder weniger zufällig.
Besonders wenn Excel in einer Spalte ein Datum vermutet ...

von oszoi40 (Gast)


Lesenswert?

> Was Excel aus csv macht ist mehr oder weniger zufällig.
> Besonders wenn Excel in einer Spalte ein Datum vermutet ..

Ganz zufällig ist übertrieben. Man sollte ausreichend geübt und gelesen 
haben um mit dem Assistenten die Werte mit oder ohne Überschrift richtig 
ins xls zu übernehmen. Die Formatierung einer Zelle ist übrigens eine 
der ersten Übungen im xls-Lehrgang.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Es ging um scv und nicht um xls.

Identische Dateien ergeben im Excel-Browser-Plugin völlig anderen
Blödsinn wie das Windows-Programm.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Ich denke da an die guten alten Zeiten (vor 30 Jahren) mit meinem APPLE 
][ zurück, da gab es noch richtige CSV-Dateien !!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eine deutschsprachige Excelversion versteht unter CSV etwas anderes als 
eine englischsprachige. Klingt bekloppt, ist aber so.

Als Feldtrennzeichen ist trotz des "C" im Namen ein Semikolon zu 
verwenden, und statt des Dezimalpunktes ein Dezimalkomma. Als 
Zeilentrennzeichen sind die üblichen CR+LF zu verwenden.
1
12,34;56;Text;12,345;12.2;Morgen

Der Punkt zwischen 12 und 2 lässt Excel hier ein Datum annehmen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.