Excel-Datei auslesen Allgemein 

Status
Für weitere Antworten geschlossen.

fexs

Registered +
Registriert
Mai 2009
Beiträge
316
Hallo,
ich muss einen Weg finden wie ich eine bestimmte Zelle in einer Excel-Datei auslesen kann und den Inhalt dann in HTML oder auch Java oder irgendwas eben einfügen kann. Hat einer ne Idee wie das klappen könnte? Die HTML-Seite soll fürs Intranet sein also nicht fürs Internet. Also der Pfad zur Excel-Datei ist immer gleich.

Es soll zB. auslesen ob der Status gut oder nicht so gut ist und entweder ein :)-Smiley oder ein :(-Smiley anzeigen. Bei über 100% oder mehr eben ein :).
Wir haben schon sone Seite, ich muss sie überarbeiten hab aber kein Plan wie das funktioniern soll.

Kann mir einer helfen? (ich wurde hier ja in letzter Zeit schon öffters gut beholfen:D)

Gruß fexs
 
Hi,
da bist wist du mit HTML nicht bedient werden. greife lieber auf JavaScript zurück => Moved

Stichwort AJAX (Einfach mal hier im Forum unter AJAX suchen, da gibt es schon ein paar Beispiele, wie man via AJAX Seiten auslesen kann) Danach musst du halt wissen, wie du mit einer Excel-Datei verfahren musst. Wenn sie nicht gerade als CSV abgespeichert ist, hast du da schlechte Karten, da du so Excel erst mal simulieren musst. Da gibt es zwar einige Programme im web, aber die sind echt teuer und nicht mit JavaScript realisiert.

Gruß
Broken Sword
 
Hallo fexs,

vielleicht kann ich dich insofern erst einmal "unterstützen" mit einer Lösung in deiner Excel-Datei. Habe aber keine Ahnung, wie du das dann in HTML und JavaScript umsetzen kannst. Evtl. mit dem Vorschlag von @Broken Sword.

In deiner Tabelle stehen in Spalte A deine Prozente. Für Prozente kleiner, gleich oder grösser als 100 habe ich dir mal in den Spalten B bis C drei Varianten dargestellt.
3829c3325d282c8a466993804.jpg


"Ampel"-Darstellung (Spalten B und C):
Ab B2 bzw. C2 schreibst du ein kleines "n" und wählst als Schriftart Webdings. Danach die bedingte Formatierung eingeben.

Smiley-Darstellung (Spalte D):
mit der entsprechenden Formel in D2 und ab D2 die Schriftart Wingdings wählen. Die Grossbuchstaben J,K,L entsprechen dann den jeweiligen Smileys. Ebenfalls dann die entsprechende bedingte Formatierung eingeben.

Ob dir nun meine "Teillösung" überhaupt nützlich ist, weiss ich nicht - betrachte sie dann einfach als eine kleine Lektion.

Gruss Totsch
 
Hmm Mist.. wenn es in Excel ist bringt es mir nicht viel da is eine zusammenfassung von vielen Excel-Tabellen machen will.

Man kann ja Excel-Tabellen exportieren in eine Textdatei (den code hab ich auch schon oft benötigt xD) wäre es möglich, dass wenn man Excel neu speichert, immer eine .txt datei erneuert wird. Textdateien sind bestimmt einfacher auszulesen oder?

Hat einer ne Ahnung wie man Textdateien so wie beschrieben auslesen kann?
Dass is nicht komplett mit HTML geht war mir klar, es ist ja nur sowas wie eine Textbearbeitungssprache un keine richtige Programmiersprache. Ich suche einfach nur irgendeine Sprache oder irgendein Programm, So dass man es dann in einem Browser oder von mir auch auch etwas anderem darstellen kann. Aber die Datei soll eben im Netzwerk liegen.

Naja vielleicht kann mir da ja doch noch einer helfen. (?!:()
Bis dann
fexs
 
Stichwort AJAX (Einfach mal hier im Forum unter AJAX suchen, da gibt es schon ein paar Beispiele, wie man via AJAX Seiten auslesen kann) [...]

Wenn sie nicht gerade als CSV abgespeichert ist [...]

Hast du meinen Post überhaupt gelesen?

Gruß
Broken Sword
 
Naja bisher ist die Beschreibung ja noch recht schwammig.
Ich muss einen Weg finden wie ich eine bestimmte Zelle in einer Excel-Datei auslesen kann
Bestimmte Zelle? Ist das immer die gleiche? Ist es nur eine einzige?
Mit was auslesen? Einem Programm? Muss es umbedingt HTML/Javascript etc sein. Also muss es eine Webseite sein die die Datei ausliest, oder kann es auch ein Programm sein geschrieben mit Programmiersprache XYZ?

und den Inhalt dann in HTML oder auch Java oder irgendwas eben einfügen kann.
Muss der Inhalt der Zelle durch eine HTML Seite angezeigt werden? In Java kann man nichts einfügen. Auch nicht in Javascript. Aber es hilft wenn man vielleicht schon mal den Unterschied kennt zwischen den ZWEI Sprachen. ;-)

Hat einer ne Idee wie das klappen könnte? Die HTML-Seite soll fürs Intranet sein also nicht fürs Internet. Also der Pfad zur Excel-Datei ist immer gleich.
Ideen zu haben ist kein Problem, man muss aber halt auch das Problem wirklich erfassen können um die entsprechende Lösung anbieten zu können. Das der Pfad immer gleich ist, macht die Sache halt nur einfacher.


Es soll zB. auslesen ob der Status gut oder nicht so gut ist und entweder ein -Smiley oder ein -Smiley anzeigen. Bei über 100% oder mehr eben ein .
Wie stellt man fest ob der Status gut ist oder nicht? Muss der Status erst errechnet werden?

Wir haben schon sone Seite, ich muss sie überarbeiten hab aber kein Plan wie das funktioniern soll.
Was heisst ihr habt schon so eine Seite? Wie sieht die denn aus? Was macht die? Was musst du da überarbeiten?

Wenn man die Fragen alle sauber klärt, dann kann dir bestimmt auch geholfen werden.

Gruß,
stelzi
 
Hey ja ich hab die Sache mit dem AJAX schon gelesen. Hab aber nichts gefunden was mir so richtig hilft. Die Excel-Dateien sind auch als .xls gespeichert.

Also un es muss kein HTML sein ich dachte nur eine Seite die sich im Browser anzeigen lässt ohne jeden Download oder Installation von anderen Programmen wäre schonmal gut. Muss aber nicht wenns nicht geht.

Ja die Zelle in den Dateien ist immer gleich. Es ist eine Rechnung über den Fortschritt von bestimmten Prozessen. Wenn die Prozesse nicht alle erledigt sind steht in der letzten Zelle eben weniger als 100% und so ist es in viele Excel-Sheets. Diese soll ich zusammenfassend auf dem Bildschirm anzeigen lassen. Also alles sollte grün sein.. wenn etwas nicht grün ist soll man eben nur diese Datei öffnen. So muss man nicht alle 3 Stunden hunderte Dateien öffnen und nachsehen ob es noch alles ok ist.

In unserem Intranet gibt es schon eine Seite bei der man auf eine bestimmte Datei klicken kann und dann steht da "Comleted: Yes" wenns bei 100% ist. Ich kann aber den Quellcode nicht sehen. Das warn aber auch Profi-Coder die das gemacht haben.

Der Inhalt der Zelle muss nicht unbedingt angezeigt werden. Wäre cool aber wenns nicht geht dann eben nicht.

Man stellt den Status wie beschrieben fast: Steht in der Tabelle hinter allen Prozessen "Completed" hab ich es so gemacht dass jetzt unten 100% steht. Wenn da 100% steht soll es eben in irgendeinem Programm das in irgendeiner Sprache geschrieben wurde zB grün oder ein :) smiley anzeigen^^.
Wäre nur eben gut wenn ich auch en bissl was von der Sprache versteh. VB.NET wäre wohl am einfachsten.

Ich hoffe jetzt ist es verständlicher.
mfg
fexs
 
Also wenn ich das richtig verstehe, dann habt ihr im Intranet eine Seite auf der alle Exceldateien gelistet sind. Und wenn man eine bestimmte anklickt, dann wird die überprüft und es wird eben ""Comleted: Yes" angezeigt. Wenn es aber sehr viele sind und man alle überprüfen will, muss man alle einzeln anklicken was etwas länger dauern kann. Jetzt sollst du bzw. möchtest du das ganze vereinfachen indem es z.b. nur eine Seite gibt die anzeigt ob alle Dateien in Ordnung sind und wenn nicht, genau die Dateien listet die es eben nicht sind. Hab ich das so richtig verstanden?

Man stellt den Status wie beschrieben fast: Steht in der Tabelle hinter allen Prozessen "Completed" hab ich es so gemacht dass jetzt unten 100% steht. Wenn da 100% steht soll es eben in irgendeinem Programm das in irgendeiner Sprache geschrieben wurde zB grün oder ein smiley anzeigen^^.
Die Anzeige des Smilies bzw. was auch immer, soll aber auf einer Webseite erfolgen und nicht in der Exceldatei, weil hier steht ja schon 100%, richtig?
 
Nein des mit dem Completed ist erstmal egal. Eigentlich will ich erstmal nur ein Weg wissen, wie man die Zelle aus der Excel-Datei irgendwie, mit irgendeinem Programm oder irgendeinem Programmcode auslesen kann, sodass man die Zahl dann irgendwie irgendwo(Browser,VB-Form...) möglichst dynamisch einbauen kann^^. Um den ganzen Rest kümmer ich mich dann später wenn ich erstmal so weit bin. Hast du da erstmal ne Idee weil ohne das brauch ich mir um den Rest erstmal keine gedanken machen.
Gruß
 
Naja, das Auslesen einer Zelle in einer Exceldatei mit irgendeiner Programmiersprache ist nicht das Problem. Das müsste imho so gut wie mit jeder Programmiersprache machbar sein.
Da ich Java(bemerke nicht JavaScript) beherrsche, kann ich dies in Java.
Mit VB oder etwas ähnliches kann ich dir allerdings nicht dienen.
Jedoch müsste eine Googlesuche (wer hätts gedacht) die entsprechenden Hilfe liefern, um ein Auslesen solcher Zellen mit VB realisieren zu können.
 
Ich finde aber immer nur Codes die den Inhalt einer offenen Tabelle in eine andere kopiern können. Sowas ist ja klar.. aber ich bräuchte ihn ja aus einer geschlossenen Tabelle. Wenn du etwas gefunden hast könntest du mir mal den Link schicken??
 
Drücke dich nächstes mal gleich klarer aus, was du willst, wie die Umstände sind. => Moved

Gruß
Broken Sword
 
Der einfachste Weg:
Du nutzt VB6, VBA, VB.NET, C# oder was in dieser Richtung. Dann kannst Du über die Office Automatisierung fast alles machen. Das Ergebnis legst Du dann irgend wo ab, wo Server (Apache, IIS oder so was) zugreifen kann.

Du nimmst den IIS und baust nutzt die Office Automatisierung von dort aus (Ist leider nicht meins, da ich absolut keinen Plan von ASP und IIS habe).

Du nimmst Dir einen Tomcat und nutzt POI, dann kannst Du alles im Server machen.

Ich würde Dir aber zum ersten Vorschlag raten. Ist zwar nicht elegant aber einfach zu entwerfen und einfach zu handhaben.

Jetzt noch was zur Office Automatisierung. Ein Beispiel in VB.NET:

Code:
Public Class Form1
Function excel()
Dim Excel1 As New Microsoft.Office.Interop.Excel.Application
Dim txt As String
Try
Excel1.Workbooks.Open("C:\datei.xls")
'Excel1.Visible = True ....wers braucht ?
txt = Excel1.Range("A2").Value()
MessageBox.Show(txt)
Catch ex As Exception
MessageBox.Show("Datei nicht vorhanden.")
Finally
Excel1.Application.Quit()
End Try
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
excel()
End Sub
End Class

und in VB6:

Code:
Public Function testExcel()
Dim myExcel As excel.Application
Dim myWorkbook As excel.workbook
Dim mySheet As excel.Worksheet

On Error GoTo err_Handler

Set myExcel = New excel.Application
Set myWorkbook = myExcel.Workbooks.Open("C:\datei.xls")
Set mySheet = myWorkbook.Sheets("Basis")
testExcel = mySheet.Range("G35")
'man kann auch ohne ein sheet-Object arbeiten.
'testExcel = myWorkbook.Sheets("Basis").sheet.Range("G35")

'Exit Handler
'Hier muss der Code auc im Error-Fall durch, damit
'alle Objekte sauber abgebaut und die im Hintergrund
'laufende Excel-Applikation beendet wird
exit_handler:
On Error Resume Next:
myWorkbook.Close
myExcel.Quit
Set mySheet = Nothing
Set myWorkbook = Nothing
Set myExcel = Nothing
Exit Function

' Error Handler
err_Handler:
Call MsgBox(Err.Description, vbCritical, "error")
Resume exit_handler:
End Function


Wichtig sind diese Zeilen:
Set myExcel = New excel.Application
Set myWorkbook = myExcel.Workbooks.Open("C:\datei.xls")
Set mySheet = myWorkbook.Sheets("Basis")

Erst mal eine EXCEL-Instanz anlegen.
Dann eine Datei öfnen.
Danach ein Sheet auswählen.
 
Zuletzt bearbeitet von einem Moderator:
hmm weiß irgendwie nicht richtig für was das gut ist. Bei mir steht "Microsoft.Office.Interop.Excel.Application ist nicht deklariert" aber das Problem hab ich irgendwie öffters. Naja ich glaub ich muss meinem Chef sagen, dass das zu schwer für mich ist ich dachte das wäre irgendwie einfacher. Ist eh nicht mein gebiet also was solls ;)
In 3 Monaten bin ich wieder daheim in Deutschland un dann is wieder alles paletti un ich muss keine Forem mehr vollspammen xD

Aber trotzdem vielen Dank für eure Hilfe!
Gruß fexs
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

C
Antworten
12
Aufrufe
2K
T
Antworten
8
Aufrufe
2K
T
K
Antworten
2
Aufrufe
2K
HobbY-FreaK
H
Zurück
Oben Unten