C#以Excel格式编写

本文关键字:格式 Excel | 更新日期: 2023-09-27 18:25:51

我正在向我的方法传递一个参数,其中该参数的数据类型是字符串,但该字符串是二进制类型"UEsDBBQABgAIAAAIQDfz5sukgEAAJQGAATANwBW0NvbnRlbnRfVHlwZ",然后该参数将被写入excel格式。问题是,该文件可以创建,但由于格式无效而损坏。输入参数来自excel文件,但以二进制形式读取。

我的示例代码是:

public void writeFile(String fileContent)
{       
    // Write the string to a file.
    StreamWriter file = new StreamWriter("c:''test2.xlsx");
    BinaryWriter bw = new BinaryWriter(file);
    bw.Write(fileContent);
    bw.Close();
    file.Close();
}

谢谢。

C#以Excel格式编写

二进制数据无法按原样发送或用作text/string,原因是有些二进制数字无法用文本字符表示,同时有些二进制数字在字符串中具有不同的含义。

你可以做的是使用将其转换为字符串

  • MIME(带Base64)
  • UUEncode
  • XX编码

然后将其转换回二进制

asp.net已经准备好了Convert.ToBase64StringConvert.FromBase64String进行转换。

asp.net的转换函数:
http://msdn.microsoft.com/en-us/library/dhx0d524.aspx
http://msdn.microsoft.com/en-us/library/system.convert.frombase64string.aspx

自定义转换示例
http://www.csharp411.com/convert-binary-to-base64-string/

如果字节以字符串形式出现,请使用以下代码:

    var base64EncodedBytes = System.Convert.FromBase64String(bytesAsString);
                                File.WriteAllBytes(fullPath, base64EncodedBytes);

希望这能有所帮助。