WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Excel sheet löschen

 

KardinalWest
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 24.09.2009, 18:41     Titel: Excel sheet löschen
  Antworten mit Zitat      
Hallo,

Habe mir ein Programm geschrieben, welches Messdaten liest, aufbereitet und anschließend via xlswrite in ein Excel-File schreibt. (Übergabe der aufbereiteten Daten an den Kollegen muss als Excel-File erfolgen)

Dabei wird je nach Aufgabenstellung ein Excel-sheet mit dem betreffenden Namen angehängt (z.B. "Siebline" etc...). Es läuft auch alles wunderbar, bloß stören mich die von Excel standardmäßig erzeugten (und bei mir im Endeffekt leeren) Tabellenblätter (Tabelle 1, Tabelle 2 und Tabelle 3).

Kann ich diese leeren Blätter via Matlab löschen und/oder umbenennen? (Ist zwar eher ein ästhetisches Problem, doch eventuell hat ja jemand die Lösung zur Hand?)

Gruß und Dank - Tom
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.09.2009, 21:00     Titel:
  Antworten mit Zitat      
Hallo,
Schau dir einfach den Quellcode von xlswrite.
so ungefähr muss du auch beim löschen verfahren.

Oder schau hier rein
http://www.mathworks.de/matlabcentr.....reader/view_thread/146430
Private Nachricht senden Benutzer-Profile anzeigen
 
KardinalWest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 25.09.2009, 18:03     Titel:
  Antworten mit Zitat      
Danke für den Link!
Private Nachricht senden Benutzer-Profile anzeigen
 
KardinalWest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 05.11.2009, 10:54     Titel:
  Antworten mit Zitat      
Habe mir mittlerweile mit Hilfe der verlinkten Artikel eine Lösung zusammengestöpselt und poste sie mal. Eventuell kann sie ja mal wer brauchen...

Meine Funktion löscht sämtliche leeren Blätter aus dem Excel-File und formatiert die Spaltenbreiten:
Code:

function xlserase02(xfile)
%
%xlserase: Löscht alle leeren Blätter aus einem Excel-File und formatiert
%die Spaltenbreite auf "15"
%xlserase(xfile)
%xfile ist der Vollständige Pfad- und Dateiname


%Öffne Excel-File via ActiveX-Server
xobject = actxserver('Excel.Application');
xworkbook = xobject.workbooks.Open(xfile);
worksheets = xobject.sheets;

%Anzahl der Vorhandenen Blätter
h1 = worksheets.count;


h2 = 1;
for i = 1:h1
   
    %Formatierung der Spalten    
    ber = get(worksheets.Item(h2),'Range','A1','IV1');
    set(ber, 'ColumnWidth', 15);
   
    %Hilfsvariable
    h3 = worksheets.count;
   
    %Löschen nicht möglich, wenn nur 1 Blatt vorhanden
    if h3 == 1
        break
    end
   
    %Löscht Blatt, falls es leer ist
    worksheets.Item(h2).Delete;
   
    %Falls Blatt nicht gelöscht, gehe zu nächstem Blatt
    if h3 == worksheets.count
        h2 = h2+1;
    end
end

%Schließe Excel-File
xworkbook.Save;
xworkbook.Close(false);
xobject.Quit;
delete(xobject);


%end für MF
end
 


Gruß - Tom
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2012, 14:48     Titel:
  Antworten mit Zitat      
Hallo Tom,

erst mal danke, dass du deinen Code gepostet hast, das war genau das was ich gesucht habe. Jetzt habe ich nur noch ein Problem, ich bekomme diese Fehlermeldung:

??? Invoke Error, Dispatch Exception:
Source: Microsoft Office Excel
Description: 'Test1.xls' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens, und überprüfen Sie, ob der Speicherort der Datei korrekt ist.

Wenn Sie versuchen, die Datei über die Liste der zuletzt geöffneten Dateien zu öffnen, stellen Sie sicher, dass die Datei nicht umbenannt, verschoben oder gelöscht wurde.
Help File: C:\Program Files (x86)\Microsoft Office\Office12\1031\XLMAIN11.CHM
Help Context ID: 0

Ich weiss leider wirklich nicht was ich damit anfangen soll, und wär für jede Hilfe dankbar, denn die leeren sheet regen mich auf Wink.

Ich erzeuge meine Datei mit xlswrite. Vielleicht ist das das Prolem?

Liebe Grüße, Nina
Private Nachricht senden Benutzer-Profile anzeigen
 
Trutzy
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 06.11.12
Wohnort: ---
Version: R2010b R2011b
     Beitrag Verfasst am: 06.11.2012, 11:39     Titel:
  Antworten mit Zitat      
Hallo Nina,

das Problem liegt an dem was die Funktion erwartet.

Zitat:
%xfile ist der Vollständige Pfad- und Dateiname


also anstatt xlserase02('Test1.xls') einfach xlserase02([pwd '\Test1.xls']) aufrufen.

Viele Grüße,
Trutzy
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2012, 10:31     Titel:
  Antworten mit Zitat      
Vielen Dank Smile

Da würde ich mal sagen, wer lesen kann ist klar im Vorteil. Very Happy
Allerdings hätte ich auch dann nicht gewusst was ich machen soll, ich bin noch ganz am am Anfang was meine MatLab Kentnisse angeht..

Leider spuckt er jezt die nächste Fehlermeldung aus, mit der ich ebenfalls nix anfangen kann:

??? No method 'Open' with matching signature found for class 'Interface.Microsoft_Excel_12.0_Object_Library.Workbooks'.

Error in ==> xlserase02 at 11
xworkbook = xobject.workbooks.Open(xfile);

Ich weiss nicht ob es daran liegt, aber ich benutze Office 2007 im Kompatibilitätsmodus 97-2003, damit mein MatLab damit klar kommt.

Wäre toll wenn auch dazu noch jemand was wüsste.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.11.2012, 11:52     Titel:
  Antworten mit Zitat      
Hallo niniwe,

Was ist genau der Inhalt und Type der Variable "xfile"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2012, 19:43     Titel:
  Antworten mit Zitat      
Ich gebe das jetzt so ein:

Code:
xlserase02([pwd\Dateiname])


und Dateiname ist ein char array mit dem Inahlt: Test.xls
Private Nachricht senden Benutzer-Profile anzeigen
 
niniwe
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 03.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2012, 19:47     Titel:
  Antworten mit Zitat      
Wenn man den \ mit zum Dateinamen dazuschreibt funktionierts.

Code:
xlserase02([pwd,'\',Dateiname])


Vielen Dank euch Allen! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.