Wie Sie zum erstellen von Microsoft.Office.Interop.Wort.Document-Objekt aus dem byte-array, ohne speichern auf der Festplatte?
Wie kann ich eine Microsoft.Office.Interop.Word.Document
Objekt aus dem byte-array, ohne speichern auf der Festplatte mit C#?
public static int GetCounterOfCharacter(byte[] wordContent)
{
Application objWord = new Application();
Microsoft.Office.Interop.Word.Document objDoc = new Document();
//objDoc = objWord.Documents.Open(("D:/Test.docx"); i want to create document from byte array "wordContent"
return objDoc.Characters.Count;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist kein straight-forward Weg, dies zu tun, soweit ich weiß. Die Word-interop-Bibliotheken sind nicht in der Lage zu Lesen aus einem byte-stream. Es sei denn, Sie arbeiten mit großen (oder eine riesige Menge von) Dateien, ich würde dir einfach empfehlen die Verwendung einer tmp Datei:
Ich weiß, das ist nicht die Antwort, die du suchst, aber in einem Fall wie diesem (wo das tun, was Sie wirklich wollen, zu tun erfordert sehr wenig Zeit und zappeln) es könnte eine überlegung Wert sein, ob oder nicht der Entwicklung der Zeit überwiegt die Laufzeit-performance.
Wenn Sie wollen immer noch, sich in einem Weg, es zu lösen, die Art und Weise Sie beabsichtigen, es zu, würde ich empfehlen, die Antworten in diese thread.
var tmpFileStream = File.OpenWrite(tmpFile);
Visual Studio gibt die Fehlermeldung "Überlast-Auflösung ist fehlgeschlagen, da keine zugängliche 'Datei' akzeptiert diese Anzahl von Argumenten". Irgendeine Idee warum das ist?System.IO.File.OpenWrite(...)
(mit dem voll-qualifizierte namespace). Sehen Sie, diese Frage für mehr info: stackoverflow.com/questions/8314628/...FileOptions.DeleteOnClose
. Siehe: stackoverflow.com/questions/3240968