| |
|
|
- Seite 1 - |
|
ByteAttack | Auf meiner Seite gibt es jetzt eine Include-Datei, mit der man mit nur einem Befehl, ein komplettes Tabellenblatt von Excel in eine Listview importieren kann.
[...]
Beispiel:
$I Excel2lv.inc
WindowStyle 26
WindowTitle Excel
Window 0,0-800,600
Declare lvdll&,lvliste&
lvdll&=usedll($ProgDir+Listview.dll)
$I ListView_Include.inc
Register(123456)
lvliste&=CreateListView(%hwnd,%hinstance,0,$FFFFFF,-1,$31)
Excel2LV C:Tabelle.xls,Tabelle1,lvliste& Excel-Tabelle, Tabellenname, LV-Handle
ShowListView(lvliste&,10,10,728,528)
WaitMouse
$I ListView_Dispose.inc
|
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
Detlef Jagolski | Darf man den Excel Dateien ohne Excel erstellen? |
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 25.10.2007 ▲ |
|
|
|
|
Christian Schneider | Ja. Das Dateiformat ist nicht geschützt (wäre auch nicht unbedingt förderlich).
OpenOffice (und diverse andere Programme) können auch Excel-Dateien erstellen. |
|
|
| |
|
|
|
ByteAttack | Hallo Detlef. Ich hoff das war eine Scherzfrage. Oder zumindest ironisch gemeint... |
|
|
| |
|
|
|
Michael Wodrich | Bei M$ ist doch alles denkbar... |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 26.10.2007 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
ByteAttack | XML2CSV
Naja, noch nicht ganz fertig, aber in der Mache...
$P*
USERMESSAGES 16 X-Schaltfläche
Declare close%,Tabelle$
Tabelle$=Tabelle1
Declare Global_String$
Assign #4,$TempDir+c2l.csv
Rewrite #4
###################################
# Konvertiert die XML in eine CSV #
###################################
Proc XML2CSV
Declare Zeile$,abhier%,bishier%,Row%,String$,first%
Assign #3,$TempDir+Calc2lv.xml
Reset #3
WhileNot Eof(#3)
Input #3,Zeile$
if abhier%=0
if InStr(Tab$,Zeile$)
abhier%=1
endif
else
if InStr(</table:table>,Zeile$)
Return 0
else
if Row%=1
if InStr(</table:table-cell,Zeile$) EndeSpalte
Row%=0
endif
endif
if Row%=0
if InStr(<table:table-row,Zeile$) Spalte
Row%=1
endif
endif
if InStr(</text:p>,Zeile$)
String$=Translate$(Zeile$,</text:p>,)
if Row%=1
Global_String$=Global_String$+;+String$
if first%=1
print #4,Global_String$
else
first%=1
endif
Global_String$=String$
else
Global_String$=Global_String$+;+String$
endif
endif
endif
endif
EndWhile
Close #3
EndProc
################################################ ###
# Konvertiert die einzelen <> Abschnitte. # ###
# DAUERT ABER NE EWIGKEIT BEI GROSSEN TABELLEN # #############################
# WER HIER EINEN VORSCHLAG HAT - BITTE POSTEN # ###
################################################ ###
Proc ConvertXML
Parameters Fragment$
Declare ende%,index%,lang%,Zeichen$
lang%=Len(Fragment$)
WhileNot index%>lang%
Zeichen$=Mid$(Fragment$,index%,1)
if Zeichen$=>
Global_String$=Global_String$+Zeichen$
print #2,Global_String$
Global_String$=
else
Global_String$=Global_String$+Zeichen$
endif
Inc index%
Wend
EndProc
########################################################################
# Das XML-Dokumnet besteht aus EINEM String. #
# Proc Convert255 teilt den EINEN String in 255Zeichen-Fragmente auf #
# Ist notwendig da die max. Zeichenlänge unter XProfan 32767 Zeichen #
# beträgt. #
########################################################################
Proc Convert255
Parameters XMLDatei$
Declare B#,Anzahl%,bytes&,teiler&,uebrig&,Index&,Zeile$,Tab$
Assign #2,$TempDir+Calc2lv.xml
Rewrite #2
Tab$=<table:table table:name=+Chr$(34)+Tabelle$+Chr$(34)
bytes&=FileSize(XMLDatei$)
teiler&=bytes&/255
uebrig&=bytes&-(teiler&*255)
Dim B#,bytes&
Assign #1,XMLDatei$
OpenRW #1
Anzahl%=BlockRead(#1,B#,0,bytes&)
CloseRW #1
WhileNot Index&=teiler&
Zeile$=Char$(B#,Index&*255,255)
ConvertXML Zeile$
Inc Index&
Wend
Zeile$=Char$(B#,Index&*255,uebrig&)
ConvertXML Zeile$
Dispose B#
close #2
XML2CSV
print fertig
Close #4
EndProc
#### Hauptprogramm
WindowStyle 26
WindowTitle OOCalc2ListView
Window 0,0-%maxX,%maxY
Convert255 $ProgDir+content.xml
WhileNot close%
GetMessage
Case %Umessage=16:close%=1
Wend
|
|
|
| |
|
|
|
|
Ist notwendig da die max. Zeichenlänge unter XProfan 32767 Zeichen # # beträgt.
XProfan-Strings können 2GB fassen, über 8K werden sie jedoch etwas langsamer.
Wenn ich doch nur etwas mehr Zeit hätte könnte ich mal versuchen die XML schneller zur CSV zu konvertieren, ich sehe hier noch ein paar Effektivitätslücken. |
|
|
| |
|
|
|
ByteAttack | JA! hau rein. Ich habe das Ding quasi Zusammengeschustert Habe im Moment auch net so wirklich Zeit. |
|
|
| |
|
|
|
Frank Abbing | Bei ausreichend Bedarf könnte ich das Ganze auch als Dll-Funktion integrieren. Dürfte in Assembler am schnellsten arbeiten. |
|
|
| |
|
|
|
| Eine ASM XML2CSV bzw. XML2ListBox wäre eh lecker. |
|
|
| |
|
|
|
Frank Abbing | iF
Eine ASM XML2CSV bzw. XML2ListBox wäre eh lecker.
Listbox, pfftt. Wir sind hier im Listview-Forum... |
|
|
| |
|
|
|
| Frank Abbing
iFEine ASM XML2CSV bzw. XML2ListBox wäre eh lecker. Listbox, pfftt. Wir sind hier im List view-Forum...
Tschuldigung |
|
|
| |
|
|