SharePoint 2010通过Web Service读取和修改Excel文件

来源:互联网 发布:主流编程语言对比 编辑:程序博客网 时间:2024/05/17 09:25

 

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

原创粉丝点击