Ich verwende diesen Code, um Daten aus einem 2d-Objekt-Array in den Speicher-Stream zu kopieren. Der Speicherstrom zeigt die Anzahl der Daten an, die aus dem 2d-Array gelesen wurden. Aber am Ende bekomme ich eine leere Saite. Ich kann nicht verstehen warum. Bei Verwendung des SoapFormatters ist die Zeichenfolge jedoch nicht leer, sondern ist im Soap-Format eingeschlossen, was nicht sinnvoll ist. Hier ist der Code mit BinaryFormatter.Speicher-Stream mit 2d-Array
Worksheet sheet = (Worksheet)workBookIn.Sheets[1];
Range excelRange = sheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(
XlRangeValueDataType.xlRangeValueDefault);
using (var ms = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
//valueArray = 2d object array
formatter.Serialize(ms, valueArray);
ms.Position = 0;
return Encoding.UTF8.GetString(ms.ToArray());
}
Sie können kein Array serialise und dann erwarten, dass es einen String zurück. Mehr als nur der tatsächliche Inhalt des Arrays wird vom Formatierer gespeichert. Ich vermute, was Sie eigentlich wollen, ist nur die Werte des Arrays in eine Zeichenfolge zu setzen, also sollten Sie keinen binären Formatierer verwenden. – MicroVirus
Vielen Dank. Was soll ich dann verwenden? Wie bekomme ich die Werte aus dem 2d-Objekt-Array in eine Zeichenfolge? Bitte helfen Sie mit. – automationFormation
Das hängt davon ab, dass wir die Definition von 'valueArray' kennen müssen, also könntest du es in deine Frage bearbeiten? – MicroVirus