touint sbyte que int16 ejemplo c# interop ms-word byte

sbyte - signed byte c#



Convierta objeto Word of interop en byte[] sin guardar físicamente (1)

Tengo un objeto creado en la memoria usando Microsoft.Office.Interop y Microsoft.Office.Word y con todos los párrafos creados, tablas y similares. Necesito este objeto para generar un byte de contenido [] para alimentar un campo del mismo tipo en una tabla. El problema es que no puedo guardarlo de ninguna manera físicamente con un oDoc.Save ("ruta") para usar un FileStream y resolver mi problema.

He intentado varias soluciones y cómo usar el portapapeles, y no funcionó. ¿Alguna solución?


¿Realmente tiene que usar Microsoft.Office.Interop y Microsoft.Office.Word ?

Si no es realmente necesario, puede usar las bibliotecas OpenXML SDK para manipular el contenido de WordDocument.

OpenXML SDK contiene una clase WordprocessingDocument que puede manipular una secuencia de memoria que contiene un contenido de WordDocument. Y MemoryStream se puede convertir usando ToArray() en un byte[] .

Como muestra de código:

byte[] templateContent = File.ReadAllBytes(templateFile); MemoryStream stream = new MemoryStream(); stream.Write(templateContent, 0, templateContent.Length); WordprocessingDocument wordDoc = WordprocessingDocument.Open(stream, true); // When done byte[] contentOfWordFile = stream.toArray();