将Excel字节数组数据转换为Datatable C#API

问题描述 投票:0回答:1

要求客户端以字节数组的形式发送Excel数据(将提供相同的API链接给客户端)

现在,当API收到字节数组时,我想转换为数据表以转换为XML。

下面是我尝试过的代码

 public string ConvertExcelByteArraytoXML()
        {

            byte[] Excelbytes = null;
            FileStream fs = File.OpenRead("C:\\PRATAP FOLDER\\test.xlsx");            
            BinaryReader binaryReader = new BinaryReader(fs);
            Excelbytes = binaryReader.ReadBytes((int)fs.Length);
            string CreateXMLFILE = string.Empty;

       // the above code was to get byte array from excel 

            DataSet tempDataSet = new DataSet();
            DataTable dt;
            // Deserializing into datatable    
            using (MemoryStream stream = new MemoryStream(Excelbytes))
            {
                BinaryFormatter bformatter = new BinaryFormatter();
                dt = (DataTable)bformatter.Deserialize(stream);

            }
            // Adding DataTable into DataSet    
            tempDataSet.Tables.Add(dt);

           using (StringWriter sw = new StringWriter())
            {
                dt.WriteXml(sw);
                CreateXMLFILE = sw.ToString();
            }
          return CreateXMLFILE;

}

在]处抛出错误>

dt = (DataTable)bformatter.Deserialize(stream);

{“输入流不是有效的二进制格式。起始内容(以字节为单位)是:50-4B-03-04-14-00-06-00-08-00-00-00-21-00-EB-7A-D2...“}

有人可以建议我在这里做错什么吗。

要求客户端以字节数组的形式发送Excel数据(将提供相同的API链接到客户端)现在,当API收到字节数组时,我要转换...

c# .net visual-studio visual-studio-2013
1个回答
0
投票

就像我在评论中提到的,您可以尝试以下代码来转换字节数组

到数据表。

© www.soinside.com 2019 - 2024. All rights reserved.