惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
C
Check Point Blog
V
V2EX
Vercel News
Vercel News
U
Unit 42
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
J
Java Code Geeks
WordPress大学
WordPress大学
罗磊的独立博客
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG

博客园 - 名可真难起

CSOM创建Content Type并指定GUID SharePoint还原大体积内容数据库报空间错误的解决办法 SharePoint 2013: Knockout JS + Rest Service展示List数据 SharePoint 2013—创建Master Page 通过SPWeb.EnsureUser将SPUser添加到网站 如何在页面中使用sharepoint中的富文本编辑器控件 通过编程的方式给列表项添加附件 SharePoint 2010 Visual Web Part发布后找不到文件的错误 SharePoint 2010中Metadata Service 解决SharePoint2010中Excel刷新出错的问题 SharePoint 2007搜索网站开启匿名访问 SharePoint 2010: 取得浏览最多的网站 在Windows 7中如何用另一个用户运行程序 不仅仅是土豆 SharePoint 2010运行环境 最近比较懒 如何在ActionResult中返回XML类型 - 名可真难起 - 博客园 SharePoint 2010 Development Stack SharePoint 2010 Visual Web Part Demo--展示网站中的List.
SharePoint 2010通过Web Service读取和修改Excel文件
名可真难起 · 2010-11-11 · via 博客园 - 名可真难起

最近有个项目,要求用Silverlight在服务器端修改和读取Excel文件,于是用到了SharePoint中的2个Web Service来实现这个功能,它们分别是http://url/_vti_bin/lists.asmxhttp://url/_vti_bin/ExcelService.asmx

基本原理很简单,就是先用http://url/_vti_bin/lists.asmx将要修改的Excel文件迁出,然后再用http://url/_vti_bin/ExcelService.asmx往Excel中写内容。

原理清楚了,剩下的步骤就很简单了。添加2个Service的引用,然后调用,迁出文件修改,再保存,迁入。

string targetWorkbookPath = "http://url/Documents/ben.xlsx";

//迁出要修改的文件

finwebuat.Lists listsServcie = new finwebuat.Lists();

listsServcie.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

listsServcie.CheckOutFile(targetWorkbookPath, "false", DateTime.Now.ToString());

ExcelService.ExcelService excelService = new ExcelService.ExcelService();

excelService.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

Status[] outStatus;

string sheetName = "Sheet1";//要修改哪一个工作薄

//生成一个SessionID

string sessionId = excelService.OpenWorkbookForEditing(targetWorkbookPath, "en-US", "en-US", out outStatus);

////Excel文件赋值。A10表示向A10表格中写内容。

excelService.SetCellA1(sessionId, sheetName, "A10", "你要写入的内容");

//保存修改

excelService.SaveWorkbook(sessionId);

//Check In 文件

listsServcie.CheckInFile(targetWorkbookPath, "", "1");

excelService.CloseWorkbook(sessionId);

代码中加入了比较详细的注释,所以在此不再哆嗦。读取更简单,MSDN中有直接解释。

参考文档:http://msdn.microsoft.com/en-us/library/ms500767.aspx

致力于SharePoint开发. QQ:28748451.