Microsoft Graph – Excel REST API (C#) を使い Range を操作するサンプル コード

こんにちは、Office Developer サポートの森 健吾 (kenmori) です。 今回の投稿では、Microsoft Graph – Excel REST API を使用して、指定されたアドレスの Range オブジェクトを操作するプログラムを、実際に C# で開発するエクスペリエンスをご紹介します。 ウォークスルーのような形式にしておりますので、慣れていない方も今回の投稿を一通り実施することで、プログラム開発を経験し理解できると思います。前回の OneDrive API のウォークスルー同様、本投稿では、現実的な実装シナリオを重視するよりも、Excel REST API を理解するためになるべくシンプルなコードにすることを心掛けています。例外処理なども含めていませんので、実際にコーディングする際には、あくまでこのコードを参考する形でご検討ください。 Excel REST API は、OneDrive API が前提となります。OneDrive API エンドポイント配下で取得したファイルに対してのみ、Excel REST API は使用できます。Office 365 という前提はありますが、一度慣れてしまえばオートメーションの要件において、OpenXML などのプログラムを実装するよりも開発生産性が高いと思います。 事前準備 以前の投稿をもとに、Azure AD にアプリケーションの登録を完了してください。少なくとも以下の 2 つのデリゲートされたアクセス許可が必要です。 ・Have full access to all files user can access ・Sign users in その上で、クライアント…


7 great ways to hit the ground running this school year

Guest post by Helen Gooch, Microsoft Fellow and Master Trainer. Connect with Helen on the Educator Community.  List of new students for your class. Check!  Classroom arranged for optimal learning styles. Check!  Bulletin boards done. Check!  Now let’s discover seven great ways to hit the ground running this school year by getting your curriculum ready, getting…


Apache Kafka for HDInsight (public preview) (1)

Microsoft Japan Data Platform Tech Sales Team 高木 英朗   分散型のストリーミングプラットフォームとして人気の Apache Kafka が Microsoft Azure の HDInsight に Kafka for HDInsight としてリリースされました。 本記事の投稿時点 (2017/01/23) ではパブリックプレビュー版となります。 HDInsight については以下をご参照ください。 Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (1) Microsoft Azure の Hadoop ディストリビューション HDInsight を使ってみよう! (2) HDInsight にデータを取り込む方法


将我的 VB6 Windows 应用引入Windows 10的应用商店

[原文发表地址]: Putting (my VB6) Windows Apps in the Windows 10 Store – Project Centennial [原文发表时间]: September 14, ’16   今天我注意到Evernote已经引入Windows的应用商店里了。我去应用商店里下载Evernote,然后运行它。没有下一步->下一步->下一步->完成之类的安装方式,只是安装上了并且运行的很好。它是一个Win32的app并且显示使用NodeWebKit作为它UI界面的一部分。但是它是一个Windows的app,正如VB6应用程序、.Net 应用程序和UWP(普遍的Windows平台)一样,因此我觉得这相当的酷。由于Evernote是应用商店的app,它就可以用Win10的一些新功能了,比如动态磁贴和通知,并且会持续更新。 利用通用Windows平台来创建和包装应用程序,Windows应用商店开始慢慢地扩展和引入了一些已有的应用程序和游戏。这就是他们在开发者会议上宣布的“百年工程”。它可以让你把任何的Windows app 引入Windows应用商店里,这简直太酷了。App在那里会比较安全,也不会扰乱你的机器,并且可以快速地安装和卸载。 从这篇文章中,你可以了解到你的App转换时的一些详情。Windows应用商店最主要的一个好处就是,应用商店里面的App不会扰乱你的机器。 这些app在一个特殊的环境里面运行,访问app后, app的文件系统和注册表会被重定向。文件Regedit.dat是用于注册表的重定向的,它实际上是个注册表的配置单元,因此你可以在windows注册编辑器(Regedit)中查看它。AppData文件夹是文件系统里唯一的重定向文件系统,它重定向到所有UWP应用程序的应用程序数据存储的同一位置。这个位置被称为本地应用程序数据存储区,并且你可以通过LocalFolderproperty属性访问它。这样,你无需做任何事,代码就已经移植到读取和写入应用程序数据的正确位置了。你也可以直接在哪里进行写操作。文件系统重定向的一个好处是应用程序会卸载的比较干净。 该”DesktopAppConverter“现在已经发布在Windows 商店中了,虽然它目前是以命令提示符运行。如果您的Windows桌面应用程序有一个”静默安装程序”,那么你可以运行此DesktopAppConvertor从而生成一个APPX包,然后就可以将其上传到Windows应用商店了。 备注:这个“百年纪念”的技术是在Windows10 的周年更新中,如果你还没有更新到此版本,现在你可以参考此文来进行更新。 也可以通过一些第三方的工具,如InstallShield和Wix来创建可发布到应用商店的App。这样您现有的MSI的App可以转换成UWP包然后发布到应用商店。   看起来有好几种方法可以使你现有的Windows应用程序转变成Windows10 应用商店里面可用的应用程序。你可以使用DesktopAppConverter去运行你的静默安装的程序。一旦你让你的应用程序变成应用商店的应用程序,你可以利用代码来使用动态磁贴、通知以及其他功能来“点亮”你的应用程序。可以在 GitHub里看到一个展示如何添加标题或者后台任务的示例 https://github.com/Microsoft/DesktopBridgeToUWP-Samples。如果你有Windows应用商店和可以通过传统方式安装的windows桌面程序版本,你就可以使用[Conditional(“DesktopUWP”)] 来编译。 如果你的应用程序是一个没有安装程序,只是简单的Xcopy部署应用程序,那就更简单了。这可以通过我在Windows10的机器上成功安装了VB6来证明。 备注:我使用VB6作为一个很有趣也很酷的例子,VB6我们好久都不支持了,但用它创建的应用程序仍然可以在Windows正常运行,是因为它们是Win32应用程序。对我来说,这意味着,如果我有一个VB6的程序,我想把他发布在应用商店并且扩大使用范围是完全可以的。 我做了一个可以在VB6上运行的小程序project1.exe。   参照HelloWorld的例子,我的 AppxManifest.xml文件内容如下。 文件夹里的内容包括工程文件 porject1.exe以及logo和一些图片文件。 如果我有一个静默安装程序,现在我可以运行DesktopAppConverter,但由于我只有一个xcopy的应用程序,我将在我的本地机器上运行以下命令来进行测试。 现在我的VB6小应用程序已经安装在本地,在开始菜单里可以看到。 当我准备用Visual Studio把我的应用程序制作好以提交到应用商店时,我会按照这个指导文档来操作。或者可以在命令行中使用MakeAppx和SignTool工具来手动完成。 “C:Program Files (x86)Windows Kits10binx86makeappx” pack…


Imagine Cup 2017 日本予選大会 1次選考通過チーム発表

皆さん、こんにちは。 Imagine Cup の季節がやってまいりました。 実は今年の Imagine Cup は例年に比較して少し早めに募集を始め、先週(1月16日)に応募を締め切らせていただきました。 今年の15周年を迎える Imagine Cup はこれまで以上に技術にフォーカスしたITコンテストにシフトしています。それに伴いいくつか変更した点、そして新たな取組みを開始しています。 1. カテゴリーの廃止 より多くの学生が、より自由な発想で応募できるよう従来設けていたカテゴリー(ワールドシチズンシップ、ゲーム、イノベーション)を廃止 2. テクノロジーに重みをつけた審査基準 カテゴリー審査が無くなり、技術に重みをつけて審査をします。 前年度の配分:コンセプト 15%、技術 20%、実現性 15%、カテゴリー50% 今年度の配分:コンセプト 15%、技術 50%、実現性 15%、革新性 20% 3. アントレプレナーシップ&グローバル人材育成 日本独自の取組みとして、本大会を通じて学生たちの起業マインド、グローバルコミュニケーション力、そしてIT技術力を強化するため、グロービス/グロービス経営大学院、及び、ベルリッツ・ジャパンの2社と共に、選考過程において学生たちをサポート また、日本予選大会を英語で実施します。(プレゼンテーション及びQ&Aを英語で実施) 以下が大会の概要です。 ■テーマ: 世の中にインパクトを与える革新的でクリエイティブなソリューションやサービス ■応募資格 : 応募時に高等学校、専門学校・専修学校・高等専門学校・大学 / 大学院のいずれかに登録されている 16 歳以上の学生。 個人、または、3人までのチー ■期待する作品: 最先端のテクノロジーを駆使した作品、テクノロジーの新しい使い方を提案するような作品、または技術的に深く掘り下げられた作品 ■応募締切: 1次選考-書類 – 2017年1月16日(月) 2次選考-プレゼンビデオ、その他 – 2017年2月14日(火) ■日本予選大会 開催日: 2017年3月22日(水) 開催場所:東京都内 ■応募URL: http://aka.ms/ImagineCupJP …


Humanity: Digital collaboration’s missing ingredient

Guest post by Anurag Chakradhar, Founder and CEO of Blrt 25 years ago, a man called Michael Schrage wrote a book called Shared Minds: The New Technologies of Collaboration.  At the time, it represented landmark thinking around how people would work together to get things done, and predicted that new technology would inspire new forms…


NRF 2017 – Stand Microsoft

Retour de la NRF (National Retail Federation), Retail’s Big Show, à New York, qui rassemble chaque année plus de 30 000 personnes et 3 000 enseignes. 3 thèmes présentés 1/ Les enjeux de l’exploitation de la data et l’IA aux usages multiples (optimisation des offres, des stocks, personnalisation des messages, suggestion de ventes croisées, chatbots…)….


C# 7.0 新功能

[原文发表地址]: What’s New in C# 7.0 [原文发表时间]: August 24, 2016   下面是对C#7.0版本所有语言功能的描述。随着Visual Studio “15” preview 4 的发布,大部分功能可以被更灵活的应用。现在正是时候将这些功能介绍给大家,你也可以借此让我们知道你的想法。 C#7.0增加了很多新的功能,更专注于数据的消费,代码的简化及代码的性能。或许最大的功能就是元组和模式匹配,它可以快速获得多个返回结果,而模式匹配,它可以根据数据的“形”的不同来简化代码。我们希望将它们结合起来,从而使你的代码更加简洁高效,也可以使你更加快乐并富有成效。您可以点击Visual studio 窗口顶部的“send feedback”按钮来告诉我们是否有哪些功能没有达到预期的功效,也可以告诉我们您对功能进一步改善的一些看法。还有许多功能没有在Preview 4 中实现。我们计划在最终版本发布下面所描述的功能,如果我们不能及时发布这些功能,会在notes上通知大家的。如果这些功能有变化,我们也会通知大家的。最终可能会有一些功能的改变和删除。 如果你对这些功能的设计过程感兴趣,你可以在Roslyn GitHub site上查看我们的设计笔记和讨论。 希望你对C#7.0有一个愉快的体验。   输出变量: 在当前的C#版本,使用out参数可能不像我们想的那样方便。在你调用一个带有out参数的方法之前,你必须首先声明一个变量并传递给它。你通常不会初始化这些变量(毕竟它们会被方法重写),也不能用var去声明他们,而是必须指定数据的完整类型。 在C#7.0版本中,我们添加了out变量,可以在给一个函数传入参数的时候再去定义变量的能力。 变量的作用域是一个封闭的块,因此后续的代码行也可以使用它们。大多数类型的语句都没有它们自己的作用域,因此被声明的out参数通常被引入到封闭的范围内。 注:在Preview 4中,适用范围规则有了更多的限制:out参数的作用域是声明它的语句。因此,上面那个例子只有在下一次发布的时候才能真正使用。 因为out变量会直接被当做out参数来声明,这样编译器通常会告诉他们应该是的类型(除非它们被重载),所以我们可以用VAR来定义,而不必使用真正的类型。 Out参数的一种常见用法是Try…模式, 其中一个布尔返回值表示成功,out参数会携带所获得的结果: 注:这里的i仅仅在if分支中会用到,所以Preview 4可以很好的处理这种情况。 我们还可以使用通配作为out参数,用*的形式来处理,这样你就可以不必关注你不想关注的返回值了。 注:我们还不确定在C# 7.0是否可以使用通配符。   模式匹配 C# 7.0引入了模式的概念,抽象的讲,模式是语法元素,能用来测试一个数据是否具有某种“形”,并且在它被使用的时候从中提取信息。 C# 7.0中的模式示例: C形式的常量模式(C是C#中的常量表达式),我们可以验证输入是否等于C TX形式的类型模式(T是一种类型,X 是一个标识符)。 Var x形式的Var模式 (x是一个标识符)。 这仅仅是一个开始,模式是C#中的一个新语言元素,我们希望未来在C#中会有更多类型的模式。…


How is this perf testing thing actually working?

This post is #3 in a series of posts about performance testing. Post #1 was all about setting up an instance of NAV on Azure and get perf tests up running. Post #2 was all about scaling the number of users and running multi-tenancy. But what actually happens when running perf tests? When running a…


Screencast/Video: Building a Java-based RESTful Service and Running it in a Docker Linux Container using the Azure Container Service

Published on Jan 22, 2017 Figure 1: 1 Hour Presentation Session Abstract This session is really about the future of computing and how web-based applications will be run at scale on large clusters that provide built-in scalability, failure recovery, and optimal price performance characteristics. This presentation will provide both conceptual and concrete, hands-on guidance on…