Python在Office 365 开发中的应用
我在昨天发布的文章 —— 简明 Python 教程:人生苦短,快用Python —— 中提到了Python已经在Office 365开发中全面受支持,有不同朋友留言或私信说想了解更加详细的说明,所以特意整理这一篇给大家参考。

我之前写的《Office 365 开发入门指南》一书,对Office 365开发进行了比较详细的阐述,有兴趣可以参考 《Office 365开发入门指南》上市说明和读者服务

Microsoft Graph SDK for Python

如果你用Python开发了一个应用程序,希望调用Microsoft Graph来访问Office 365的数据,例如联系人列表,邮件处理,文件分享等。你可以通过下面的地址得到Microsoft Graph SDK,以及代码范例。
http://aka.ms/pythongraphsamples

Office 365 Add-ins with Python
Office 365 Add-ins包括Office Add-ins和SharePoint Add-ins,在新的Web Add-ins的这种框架下,Python可以很自然地开发以上两种组件,因为他们其实都是用一个manifest文件进行定义,然后核心内容都是用一个网站来提供。Python可以很方便地开发网站,所以非常简单。
这里有一个Office Add-in 范例 https://github.com/OfficeDev/Groups-API-Office-Add-in-Python-Sample

你可以用任意你喜欢的方式来开发Python 网站,例如在Visual Studio中提供了Python工具套件。

除了上面的这种新型的Web Add-in,Python也可以通过传统方式与Office 应用程序交互,例如操作Excel,PowerPoint,Word等。请参考下面的介绍。
Python with Excel
有几个很好的Python模块能够方便地操作Excel的数据,包括读与写,不要求本地安装Excel。例如pandas, openpyxl, xlrd, xlutils 和 pyexcel. 详情可以参考下面的介绍:
https://www.datacamp.com/community/tutorials/python-excel-tutorial

Python for Excel
利用xlwings模块,你可以很方便地Python应用程序中操作Excel文件(同时支持xls和xlsx),也可以在Excel中直接调用Python的脚本(通过RunPython函数),还可以使用Python为Excel自定义函数,需要本地安装Excel。请参考 https://www.xlwings.org/

Python for Word
使用python-docx这个模块,可以很方便地创建和修改Word文档(不需要本地安装Word)
https://pypi.org/project/python-docx/

Python for PowerPoint
使用python-pptx这个模块,可以很容易地创建或修改PowerPoint 文档(不需要本地安装PowerPoint)。请参考
https://python-pptx.readthedocs.io/en/latest/

其实还有很多,Python的模块都是开源的,由全世界的程序员贡献并分享,如果遇到什么需求,可以先用 pip search 命令搜索一下,也许已经有了现成的模块呢。
本文转载自微信公众号"希章分享",有兴趣可扫描关注。

Python在Office 365 开发中的应用的更多相关文章
- 拥抱开源,Office 365开发迎来新时代
前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...
- [ Office 365 开发系列 ] 开发模式分析
前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...
- Office 365开发概述及生态环境介绍(一)
原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...
- Office 365开发概述及生态环境介绍(二)
本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...
- Office 365开发环境概览
本文于2017年3月26日首发于LinkedIn,原文链接请参考这里 本系列文章已经按照既定计划在每周更新,此前的几篇文章如下 Office 365 开发概览系列文章和教程 Office 365开发概 ...
- 《Office 365 开发入门指南》公开邀请试读,欢迎反馈
终于等来了这一天,可以为我的这本新书画上一个句号.我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 365开发人员写一些东西并最终能帮到更多中国用户的想法,而从2月26日正式写下 ...
- 《Office 365开发入门指南教程》正式上线,限时优惠和邀请分享推广
我很高兴地通知大家,<Office 365 开发入门指南教程>已经正式在网易云课堂上线,你可以通过直接访问 https://aka.ms/office365devlesson 这个短地址 ...
- 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市
今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光 ...
- 《Office 365开发入门指南》上市说明和读者服务
写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...
随机推荐
- 内存栅栏(memory barrier):解救peterson算法的应用陷阱
最近一个项目中用到了peterson算法来做临界区的保护,简简单单的十几行代码,就能实现两个线程对临界区的无锁访问,确实很精炼.但是在这不是来分析peterson算法的,在实际应用中发现peterso ...
- 基本数据类型的包装类(Interger)
基本数据类型 vs包装类 byte Byte short Short char Character int Integer long Long float Float double Double bo ...
- stm32模拟IO读写AT24C02
/* *@brief 主机向从机写多字节 * *@param addr - 地址 *@param p_buf - 数据指针 *@param len - 待写入字节长度 * *@return * *@n ...
- 【CF429E】 Points and Segments(欧拉回路)
传送门 CodeForces 洛谷 Solution 考虑欧拉回路有一个性质. 如果把点抽出来搞成一条直线,路径看成区间覆盖,那么一个点从左往右被覆盖的次数等于从右往左被覆盖的次数. 发现这个性质和本 ...
- 每天学点SpringCloud(八):使用Apollo做配置中心
由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心 本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置.Apollo官方文档https: ...
- 如何把web.xml中的context-param、Servlet、Listener和Filter定义添加到SpringBoot中
把传统的web项目迁移到SpringBoot中,少不了web.xml中的context-param.Servlet.Filter和Listener等定义的迁移. 对于Servlet.Filter和Li ...
- Day9:html和css
Day9:html和css <head> <meta charset="UTF-8"> <title></title> <me ...
- ReentrantReadWriteLock 读写锁解析
4 java中锁是个很重要的概念,当然这里的前提是你会涉及并发编程. 除了语言提供的锁关键字 synchronized和volatile之外,jdk还有其他多种实用的锁. 不过这些锁大多都是基于AQS ...
- Docker安装配置MongoDB并使用Robo 3T在局域网连接
主要参考了这位老兄的文章(传送门),写的还是比较详细的. 不废话直接来正经的. 1.docker pull mongo 从docker hub拉取最新的mongo镜像文件,300多M大小. 2.doc ...
- 【code block】局部代码块+构造代码块+静态代码块
1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void mai ...