我正在使用 BinaryReader 使用 OWA 从 Exchange 邮箱读取 Excel 2007 文件,然后使用 BinaryWriter 将文件写入磁盘。我的问题是当作者完成时这两个文件不匹配。更糟糕的是 Excel 2007 不会打开 writen 文件。
以前 Excel 2003 对下面的解决方案没有任何问题。如果文件是 Excel 2003 格式的文件,则 Excel 2007 没有问题,只要文件格式是 Excel 2007 (*.xlsx)。
二进制阅读器:
using(System.IO.Stream stream = resource.GetInputStream(attachedFiles[k].Address))
{
using(System.IO.BinaryReader br = new System.IO.BinaryReader(stream))
{
attachment.Data = new byte[attachedFiles[k].Size];
int bufPosn=0, len=0;
while ((len = br.Read( attachment.Data, bufPosn, attachment.Data.Length-bufPosn )) > 0)
{
bufPosn += len;
}
br.Close();
}
}
二进制写入器:
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter binWriter = new BinaryWriter(fs);
binWriter.Write( content, 0, content.Length );
binWriter.Close();
fs.Close();
建议欣然接受。