Weitere ähnliche Inhalte
Ähnlich wie Share point開発 勤怠管理 (13)
Share point開発 勤怠管理
- 7. Excelへのエクスポート処理
public void Export(string filename, string email, int year, int month)
{
using (var helper = new SpreadsheetHelper(filename))
{
if (!helper.MoveWorksheet(sheetName)) throw new ApplicationException("不正なテンプレートです。" + sheetName +
"のシートがありません");
var worksheet = helper.CurrentSheet;
helper.SetCellValue(emailAddressCell,email);
using (var serverContext = ServerApplicationContext.CreateContext())
{
var startDate = new DateTime(year, month, 1);
helper.SetCellValue(startDateCell, startDate);
var sb = new StringBuilder();
using (var workspace = serverContext.Application.CreateDataWorkspace())
{
foreach (WorkTime item in workspace.ApplicationData.WorkTimeSet.Where(x => x.UserId == email &&
x.WorkDate.Year == year && x.WorkDate.Month == month))
{
var rowIdx = item.WorkDate.Day - 1 + startPos;
helper.SetCellValue(4,rowIdx, item.SickHolidy);
helper.SetCellValue(9, rowIdx, item.StartTime);
helper.SetCellValue(11, rowIdx, item.EndTime);
helper.SetCellValue(16, rowIdx, item.Remark);
}
}
}
helper.Save(filename);
}
}
OpenXMLでExcelファイルを処理
- 8. ドキュメントライブラリの登録
using (var serverContext = ServerApplicationContext.CreateContext())
{
var appWebContext = serverContext.Application.SharePoint;
using (var ctx = appWebContext.GetAppWebClientContext())
{
var list = ctx.Web.Lists.GetByTitle("WorkTimeSheet");
var rootFolder = list.RootFolder;
ctx.Load(rootFolder, x=>x.Folders, x=>x.ServerRelativeUrl);
ctx.ExecuteQuery();
var subFolderName = year.ToString("0000") + month.ToString("00");
var subFolder = list.RootFolder.Folders.Where(x => x.Name == subFolderName).FirstOrDefault();
if (subFolder == null)
{
subFolder = rootFolder.Folders.Add(rootFolder.ServerRelativeUrl +"/" + subFolderName);
ctx.Load(subFolder);
ctx.ExecuteQuery();
}
using (var st = new FileStream(filename, FileMode.Open))
{
var info = new FileCreationInformation();
info.ContentStream = st;
info.Overwrite = true;
info.Url = subFolder.ServerRelativeUrl +"/" + email.Replace("@","_") + ".xlsx";
var file = subFolder.Files.Add(info);
ctx.ExecuteQuery();
}
}
}
LightSwitchからExcelをドキュメントライ
ブラリに登録