Exce2007保存到文档库的问题的解决
现在的项目中遇到一个棘手的问题,用了很长的时间才找到解决的办法,所以把解决方案展示出来。
需求:把一个二进制字节数组(byte[])存到moss文档库中
环境:虚机和测试机都是(moss2007+vs2005),并且虚机自己作为域控,而测试机是域里的一台机器
实现:
保存:public bool SaveData(string fileurl, byte[] bits)
{
bool save = false;
using (SPSite site = new
SPSite(fileurl))
using (SPWeb web =
site.OpenWeb())
{
SPFile file =
web.GetFile(fileurl);
file.SaveBinary(bits);
save = true;
}
return save;
}
获取的二进制数组:
public byte[]
GetWorkbookBits(WorkbookType type, string SeeionID)
{
try
{
ExcelService s = new
ExcelService();
Status[] status;
s.Credentials = CredentialCache.DefaultCredentials;
byte[] bits = s.GetWorkbook(SeeionID,
type, out status);
return bits;
}
catch (Exception soapEx)
{
throw new ApplicationException("The session has timed out.");
}
}
效果:虚机上保存成功,但是到测试机上生成的excel2007文件在打开时(下载到本地)有如下的错误:excel found unreadable
content in <filename>,do you want to recover the contents of this
workbook
我的解决:
1、比较web.config配置-----没有区别
2、比较office版本,开始的时候虚机是12.0.4518.1014,后来和服务器一样12.0.6300.5000
3、参考一下页面http://blogs.msdn.com/cumgranosalis/archive/2007/08/03/excel-found-unreadable-content-in-workbook-do-you-want-to-recover-the-contents-of-this-workbook.aspx
http://forums.msdn.microsoft.com/en-US/sharepointexcel/thread/f532c447-4427-4135-af4c-5a68b0b891df/
最终的解决办法很简单是file.SaveBinary(bits);方法中file文件由原来的“.xlsx”改成“.xlsb”格式文件。
见:http://www.cnblogs.com/fanwenxuan/archive/2008/08/01/1258423.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥