2
このコードを使用して、2dオブジェクト配列のデータをメモリストリームにコピーしています。メモリストリームには、2次元配列から読み取られたデータの数が表示されます。しかし、結局私は空の文字列を取得しています。なぜ私は理解できません。ただし、soapformatterを使用すると、文字列は空ではありませんが、soap形式で囲まれているため便利ではありません。 ここにBinaryFormatterのコードがあります。2d配列のメモリストリーム
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());
}
あなたは、配列をシリアライズし、それが文字列を返すことを期待することはできません。配列の実際の内容だけでなく、フォーマッタによって格納されます。あなたが実際に望むのは、配列の値を文字列に入れるだけなので、バイナリフォーマッタを使用しないでください。 – MicroVirus
ありがとうございます。それでは私は何を使うべきですか?どのように文字列に2dのオブジェクト配列から値を取得するには?親切に助けてください。 – automationFormation
これは、valueArrayの定義を知る必要があるので、あなたの質問にそれを編集できますか? – MicroVirus