sspyrs的替代版本,它是SSRS向python报告的轻量级接口。
sspyrs2的Python项目详细描述
变更日志
1.0.2版 -将<;as_response>;参数添加到下载方法。 - 自述文件.rst更新。在
不锈钢2
- 下载带有参数的报告(改进更正)
- 下载PDF报告。在
其他的事情都是一样的。在
SSPYRS2(sqlserverpythonreportingservices)库是一个轻量级接口,用于与SSRS报表交互并从SSRS报表中检索数据。这个库的核心功能很简单。对SSRS服务器执行身份验证,初始化会话,然后从该会话检索报表数据。报表数据可以通过原始XML进行交互,但有预定义的方法将其组织到Pandas DataFrame对象中。在
SSPYRS2库主要使用SSRS的XML导出功能。但是,SQL Server的免费express版本中没有提供XML或CSV导出(它们在SQL Server 2017的当前免费开发人员版本中提供)。该库包含了express版本中包含的Excel导出的直接下载功能,但是它不会将数据直接读入内存。在
SSPYRS2已经过验证,可以在大多数服务器设置下与SSRS 2008 R2、SSRS 2014和SSRS 2016、SSRS 2017和PowerBI Server 2017一起使用。在
要安装SSPYRS2,请在控制台中执行:
pip install sspyrs2
使用和文档
报告对象
报表对象可以按如下方式初始化:
^{pr2}$如果将参数传递给报表,则可以将它们作为名为“parameters”的参数作为字典传递。注意,参数必须使用rdl文件中指定的实际参数名。除非需要,否则不需要指定具有默认值的参数。在
检索数据
原始XML数据
要从报表中检索原始XML,请使用rawdata()方法:
rpt_xml = myrpt.rawdata()
结果变量将是一个包含所有报表数据元素的字典。除了来自报表的XML格式的数据元素之外,这将包括一些报表元数据。请注意,一些XML标记和标题可能与它们对应的报表属性不同。这是因为XML不包含任何XML对象标签,只包含它们的名称,这些标签在整个.rdl文件中必须是唯一的,而不仅仅是在一个元素中。例如,在包含两个表(它们之间共享列名)的报表中,第一个表或数据对象的常规列名将附加一个“@”(例如“@ID”、“@Val”),而第二个表的列名将类似“@ID2”、“@Val2”。tabledata()方法去掉“@”和数字,但是rawdata()方法将它们保留下来。在
表格数据
要将原始XML快速组织为表格格式,请使用tabledata()方法:
rpt_tables = myrpt.tabledata()
结果变量将是Pandas数据帧的字典,字典中的键对应于.rdl文件中的数据对象名称。此方法还尝试对number和date列进行一些有限的数据分析。在
导出数据
默认下载
使用允许XML导出的版本时,可以使用download()方法将报表数据直接导出为几种方便的格式:
rpt_downresults = myrpt.download(type='CSV')
结果变量列出了下载并写入文件的数据对象。当前可用的导出包括CSV、JSON和Excel。默认下载文件类型为CSV。对于CSV和JSON,将为每个数据对象创建一个文件,根据tabledata()结果中的字典键命名。对于Excel,将创建具有多个选项卡的单个文件。在
直接下载
当使用不允许XML数据导出的SSR版本时(通常因为express Edition中不包含该功能),可以使用directdown()方法将数据直接导出到任何可用的导出类型(在速成版上,通常包括Excel、Word和PDF)。在
- 项目
标签: