从原始字节写入xlsx已损坏

时间:2017-06-27 22:51:48

标签: .net excel byte xlsx

我有一个客户端服务,它通过Web服务写入SQL中的varbinary(max)字段。

然后我通过网页上的回复来写这个,通过www下载。 这适用于xlsx文件以外的所有内容。

我在没有使用回复的情况下进行了测试,我遇到了同样的问题。

当打开Excel表示'我们发现某些内容存在问题。试图打开 然后,Excel能够通过修复和删除......等等来打开文件。

客户端应用通过以下方式阅读:

MAKECERT

然后通过网络服务保存myByteArray。

客户端使用实体框架从db编写数据提取并使用以下命令编写

Dim objFileStream As IO.FileStream = New IO.FileStream(fileItem, FileMode.Open, FileAccess.Read)
Dim len As Integer = objFileStream.Length
Dim myByteArray(len) As Byte
objFileStream.Read(myByteArray, 0, len)
objFileStream.Close()

我已尝试过各种方法来编写文件,但我一直都会收到此损坏信息。

有什么想法吗?

编辑:

如果我删除webservice / db传输/存储等,我可以将问题缩小到如下:

- 读取方法:

System.IO.File.WriteAllBytes(filePath1, output)

- 立即写:

Dim objFileStream As IO.FileStream = New IO.FileStream(fileItem, FileMode.Open, FileAccess.Read)
Dim len As Integer = objFileStream.Length
Dim myByteArray(len) As Byte
objFileStream.Read(myByteArray, 0, len)
objFileStream.Close()

test.xlsx仍然存在未解决的问题。

1 个答案:

答案 0 :(得分:0)

我按照建议进行了原始文件比较,发现将xlsx读入字节数组时,最后一个数组点会出现一个额外的空值。

在没有最后一项的情况下重新放大数组,然后保存完美。 db save load和后续response.writes也运行良好。

感谢您的输入