gpt4 book ai didi

c# - 带二维数组的内存流

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:37 26 4
gpt4 key购买 nike

我正在使用此代码将二维对象数组中的数据复制到内存流中。内存流显示已从二维数组中读取的数据计数。但最后我得到一个空字符串。我不明白为什么。但是,使用 soapformatter,字符串不是空的,而是以 soap 格式包含的,因此没有用。这是带有 BinaryFormatter 的代码。

        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());
}

最佳答案

我认为您必须按如下方式使用 XmlSerializer:

    Worksheet sheet = (Worksheet)workBookIn.Sheets[1];
Range excelRange = sheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(
XlRangeValueDataType.xlRangeValueDefault);

XmlSerializer xs = new XmlSerializer(valueArray.GetType());

using(StringWriter sw = new StringWriter())
using(XmlWriter writer = XmlWriter.Create(sw))
{
xs.Serialize(writer, valueArray);
var xml = sw.ToString(); // Your XML
}

关于c# - 带二维数组的内存流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com