Mit Spreadsheet::WriteExcel
kann ich eine neue Arbeitsmappe erstellen, aber was, wenn ich eine öffnen möchte Bestehende Buch und ändern Sie bestimmte Spalten? Wie würde ich das erreichen?
Ich könnte alle Daten aus dem Blatt mit Spreadsheet::ParseExcel
analysieren und dann mit zurückschreiben neue Werte in bestimmten Zeilen / Spalten mit Spreadsheet::WriteExcel
. Gibt es ein Modul, das die beiden bereits kombiniert?
Hauptsächlich möchte ich nur ein .xls
öffnen, bestimmte Zeilen / Spalten überschreiben und speichern.
Spreadsheet :: ParseExcel liest vorhandene Excel-Dateien ein:
%Vor%Aber was Sie wirklich wollen, ist Spreadsheet :: ParseExcel :: SaveParser , eine Kombination aus Spreadsheet :: ParseExcel und Spreadsheet::WriteExcel . Es gibt ein Beispiel unten in der Dokumentation.
Wenn Sie Excel installiert haben, dann ist es fast trivial, dies mit Win32::OLE
zu tun. Hier ist das Beispiel aus Win32::OLE
eigener Dokumentation:
Grundsätzlich bietet Win32::OLE
alles, was für eine VBA- oder Visual Basic-Anwendung verfügbar ist, die eine große Vielfalt an Dingen beinhaltet - von Excel- und Word-Automatisierung bis zum Aufzählen und Montieren von Netzwerklaufwerken über Windows Script Host. Es ist Standard mit den letzten Ausgaben von ActivePerl.
Es gibt einen Abschnitt der Spreadsheet :: WriteExcel-Dokumentation, der Ändern und Neuschreiben von Tabellen behandelt.
Eine Excel-Datei ist eine Binärdatei in einer Binärdatei. Es enthält mehrere miteinander verknüpfte Prüfsummen, und wenn nur ein Byte geändert wird, kann es beschädigt werden.
Damit können Sie nicht einfach eine Excel-Datei anhängen oder aktualisieren. Die einzige Möglichkeit, dies zu erreichen, besteht darin, die gesamte Datei in den Speicher einzulesen, die erforderlichen Änderungen oder Ergänzungen vorzunehmen und die Datei dann erneut zu schreiben.
Sie können eine Excel-Datei mit dem Spreadsheet :: ParseExcel :: SaveParser-Modul lesen und neu schreiben, das ein Wrapper um Spreadsheet :: ParseExcel und Spreadsheet :: WriteExcel ist. Es ist Teil des Pakets Spreadsheet :: ParseExcel .
Es gibt auch ein Beispiel.
Das Modul Spreadsheet :: ParseExcel :: SaveParser ist ein Wrapper für Spreadsheet :: ParseExcel und Spreadsheet :: WriteExcel.
Ich habe vor kurzem die Dokumentation mit, was ich hoffe, ist ein deutlicheres Beispiel, wie dies zu tun .
Tags und Links perl spreadsheet xls