SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Visual Studioで作成する
SharePointアドイン開発
勤怠登録
2016年5月
SharePoint Onlineカスタマイズ
今回のお題
SharePoint Onlineで勤怠登録
全体図
ユーザが入力した
データよりExcelを
作成しドキュメント
ライブラリに登録
ユーザはWebまたは
Excelで入力
利用する仕組み
• クラウドビジネスアドイン
• 作業時間の登録Webインタフェース
• Excel(OpenXML)
• 入力された作業時間をExcelレポートにして
月ごとにバックオフィスに送信
• Excelでまとめて作業時間の登録も可能
入力データベース
• 毎日のデータをリストのアイテムにするのは無
理があるのでデータベースで管理
LightSwitchなので簡単に作れます!!
データ入力画面
•入力画面は一覧と追加の2つを用意
LightSwitchなので簡単に作れます!!
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ファイルを処理
ドキュメントライブラリの登録
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をドキュメントライ
ブラリに登録
まとめ
• Excelベースの業務システムをSharePoint Onlineで実現
• 単純なExcelでの運用に比べて、今回の方式は入力のし易さや
データの整合性、管理でメリットがある
• 勤怠管理以外でも応用範囲が多い
• サンプルコード
• https://github.com/akihiroe/SharePointWorkTimeAddin
http://www.proaxia-consulting.co.jp
Azure&SharePointアプリケーション開発についてのお問合せ
[担当] akihiro.ehara@proaxia-consulting.co.jp
SharePoint Onlineとファイルサーバーを統合するCloud Storage Light
https://www.cloudstoragelight.com
SharePoint 上のファイルをエクスプローラ感覚でサクサク操作するSharePointエクスプローラ
https://www.cloudstoragelight.com/sharepointexplorer/

Weitere ähnliche Inhalte

Was ist angesagt?

メタデータのファイルの管理
メタデータのファイルの管理メタデータのファイルの管理
メタデータのファイルの管理
Sylvain Gantois
 

Was ist angesagt? (20)

メタデータのファイルの管理
メタデータのファイルの管理メタデータのファイルの管理
メタデータのファイルの管理
 
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
 
Microsoft Power Platform がエンジニアにも必要な理由
Microsoft Power Platform がエンジニアにも必要な理由Microsoft Power Platform がエンジニアにも必要な理由
Microsoft Power Platform がエンジニアにも必要な理由
 
JenkinsのAWS連携
JenkinsのAWS連携JenkinsのAWS連携
JenkinsのAWS連携
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
【Dialogflow cx】はじめてみよう google cloud dialogflow cx 編
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座
 
Salesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなるSalesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなる
 
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
 
PowerApps をざっくりさわってみた
PowerApps をざっくりさわってみたPowerApps をざっくりさわってみた
PowerApps をざっくりさわってみた
 
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
工数把握のすすめ 〜WorkTimeプラグインの使い方〜工数把握のすすめ 〜WorkTimeプラグインの使い方〜
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
 
デザインが統一されているShare point サイトを作成しよう
デザインが統一されているShare point サイトを作成しようデザインが統一されているShare point サイトを作成しよう
デザインが統一されているShare point サイトを作成しよう
 
フロントエンドの技術を刷新した話し。
フロントエンドの技術を刷新した話し。フロントエンドの技術を刷新した話し。
フロントエンドの技術を刷新した話し。
 
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
 
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
 
Office 365 勉強会「いまさらきけない? SharePoint の基礎のキソ」
 Office 365 勉強会「いまさらきけない? SharePoint の基礎のキソ」 Office 365 勉強会「いまさらきけない? SharePoint の基礎のキソ」
Office 365 勉強会「いまさらきけない? SharePoint の基礎のキソ」
 
JSON Value into Power Automate
JSON Value into Power AutomateJSON Value into Power Automate
JSON Value into Power Automate
 

Andere mochten auch

SharePoint アドオンのススメ
SharePoint アドオンのススメSharePoint アドオンのススメ
SharePoint アドオンのススメ
MasakiNishioka
 

Andere mochten auch (14)

SharePointアドイン開発 Line風Chat アドイン
SharePointアドイン開発 Line風Chat アドインSharePointアドイン開発 Line風Chat アドイン
SharePointアドイン開発 Line風Chat アドイン
 
SharePoint アドオンのススメ
SharePoint アドオンのススメSharePoint アドオンのススメ
SharePoint アドオンのススメ
 
SharePoint Onlineアクセスモニター
SharePoint OnlineアクセスモニターSharePoint Onlineアクセスモニター
SharePoint Onlineアクセスモニター
 
エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編エンタープライズ.Net アーキテクチャ設計編
エンタープライズ.Net アーキテクチャ設計編
 
エンタープライズ.Net DataSet
エンタープライズ.Net DataSetエンタープライズ.Net DataSet
エンタープライズ.Net DataSet
 
Google アナリティクスで SharePointの利用状況を確認する
Google アナリティクスでSharePointの利用状況を確認するGoogle アナリティクスでSharePointの利用状況を確認する
Google アナリティクスで SharePointの利用状況を確認する
 
Cloud storage light
Cloud storage lightCloud storage light
Cloud storage light
 
エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編エンタープライズ.Net 詳細設計編
エンタープライズ.Net 詳細設計編
 
Share point開発 ファイル受信
Share point開発 ファイル受信Share point開発 ファイル受信
Share point開発 ファイル受信
 
SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携SharePointアドイン開発 SAPデータ連携
SharePointアドイン開発 SAPデータ連携
 
コミュニティイベントの創り方〜イベントに有名人は呼んではいけない〜
コミュニティイベントの創り方〜イベントに有名人は呼んではいけない〜コミュニティイベントの創り方〜イベントに有名人は呼んではいけない〜
コミュニティイベントの創り方〜イベントに有名人は呼んではいけない〜
 
Zimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and Ceph
 
SharePoint 2013/Office365の「ソーシャル」でできること。SharePointは社内Facebookになれるのか?
SharePoint 2013/Office365の「ソーシャル」でできること。SharePointは社内Facebookになれるのか?SharePoint 2013/Office365の「ソーシャル」でできること。SharePointは社内Facebookになれるのか?
SharePoint 2013/Office365の「ソーシャル」でできること。SharePointは社内Facebookになれるのか?
 
SharePoint Online を JavaScript でイジる。
SharePoint Online を JavaScript でイジる。SharePoint Online を JavaScript でイジる。
SharePoint Online を JavaScript でイジる。
 

Ähnlich wie Share point開発 勤怠管理

Ähnlich wie Share point開発 勤怠管理 (13)

WordPressでExcelインポート - Word Fes 2015 -
WordPressでExcelインポート - Word Fes 2015 -WordPressでExcelインポート - Word Fes 2015 -
WordPressでExcelインポート - Word Fes 2015 -
 
Skype for Business Work Time Recorder
Skype for Business Work Time RecorderSkype for Business Work Time Recorder
Skype for Business Work Time Recorder
 
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
 
[Excel]basic training01(1/5)
[Excel]basic training01(1/5)[Excel]basic training01(1/5)
[Excel]basic training01(1/5)
 
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Pbijp758 #02 Power BI で Twitter分析する
Pbijp758 #02 Power BI で Twitter分析するPbijp758 #02 Power BI で Twitter分析する
Pbijp758 #02 Power BI で Twitter分析する
 
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
 
SQLWorld★大阪#7
SQLWorld★大阪#7SQLWorld★大阪#7
SQLWorld★大阪#7
 
Silverlightを囲む会in大阪#19
Silverlightを囲む会in大阪#19Silverlightを囲む会in大阪#19
Silverlightを囲む会in大阪#19
 
クラウド見積・請求Office用アプリの詳細機能検討ver1 (Exceedone Cloud Office App System detail)
クラウド見積・請求Office用アプリの詳細機能検討ver1 (Exceedone Cloud Office App System detail)クラウド見積・請求Office用アプリの詳細機能検討ver1 (Exceedone Cloud Office App System detail)
クラウド見積・請求Office用アプリの詳細機能検討ver1 (Exceedone Cloud Office App System detail)
 
Japan Microsoft 365 Developer Community Day 2021 - Office スクリプトハンズオン
Japan Microsoft 365 Developer Community Day 2021 - Office スクリプトハンズオンJapan Microsoft 365 Developer Community Day 2021 - Office スクリプトハンズオン
Japan Microsoft 365 Developer Community Day 2021 - Office スクリプトハンズオン
 
Enginner summit201509 snoro
Enginner summit201509 snoroEnginner summit201509 snoro
Enginner summit201509 snoro
 

Share point開発 勤怠管理