为 Reporting Services 移动报表准备 Excel 数据

注意

SQL Server Reporting Services 2019 之后的所有 SQL Server Reporting Services 版本已弃用 SQL Server 移动报表发布服务器。 该功能从 SQL Server Reporting Services 2022 和 Power BI 报表服务器开始已停止使用。

以下是准备移动报表要使用的 Excel 文件和工作表时,需要注意的一些事项︰

应做事项

  • 每个数据集有一个工作表。
  • 第一行包含列标题。
  • 每一列的数据类型保持一致。
  • 将 Excel 中单元格的格式设置为合适类型。
  • 数据存放在工作表中,而不是在 Excel 的数据模型中。
  • 在使用公式时,请确保使用相同的公式计算整个列。
  • 使用 Excel 2007 或更高版本。
  • 用扩展名 XLSX 保存 Excel 文件。

禁止事项

  • 在数据集工作表中包含图像、图表、数据透视表或其他嵌入对象。
  • 包含总计或计算的行。
  • 导入时在文件已在 Excel 中打开。
  • 通过添加货币或其他符号手动设置数字格式。
  • 使用的工作簿包含在数据模型中存储的数据。

工作表

在为移动报表准备作为数据集的 Excel 文件时,请确保每个工作表只能有一个数据集。 每个单独的工作表作为一个独立的表导入到移动报表发布服务器。 导入后,将对具有相同名称的来自多个 Excel 源的工作表进行重命名,方法是在名称后追加递增的数字。 例如,如果工作簿有三个名为“MyWorksheet”的工作表。第二个和第三个工作表重命名为“MyWorksheet0”和“MyWorksheet1”。以下屏幕截图显示了可供导入的理想 Excel 工作表的前几行。

说明可供导入的理想 Excel 工作表的前几行的屏幕截图。

列标题

如前面的示例所示,第一行包含该列中指标的名称。 移动报表发布服务器将保留这些列标题,以方便在库元素设置中引用。 但列标题并不是必需的。 如果缺少列标题,移动报表发布服务器将使用 A,B,C,...,AA,BB,... 约定生成标题。

通过比较每一列中前两个单元格的数据类型,在导入 Excel 工作表时移动报表发布服务器会自动检测第一行的标题。 如果任何列中前两个单元格的数据类型不匹配,则视为第一行包含列标题。 因此,如果表具有数值类型的列标题,请用字符串为标题名称加上前缀,以便在导入过程中将其检测为标题。

单元

工作表数据集每一列中的单元数据应保持一致。 导入后,会为每一列分配数据类型。 移动报表发布服务器自动将数据类型检测为字符串、双精度(数值)、布尔值 (true/false) 或日期时间。 同一列中出现混合数据类型可能会导致检测不准确或完全失败。 此检测说明列标题可能为字符串类型。 应在 Excel 中正确设置单元格的类型,以确保移动报表发布服务器可以检测出所需的类型。 在前面的示例中,检测出六列的类型为:

  • 日期时间列
  • 字符串列
  • 四个双精度列

如果某个工作表包含计算的单元格或公式,则仅将生成的显示值导入到移动报表发布服务器。

文件位置和刷新 Excel 数据

对于导入到移动报表发布服务器中的 Excel 文件,其存储位置不受限制。 但是,如果在导入后移动或重命名该文件,则无法通过“数据视图”中的“刷新所有数据”命令来刷新该数据。

注意

移动报表发布服务器不会自动刷新 Excel 数据。 可以通过移动报表发布服务器的“刷新”命令来刷新数据,但前提是文件没有移动。

日期

日期字段对于许多移动报表都至关重要,因此应在 Excel 中将单元格的格式正确设置为日期。 在某些情况下,需要转换。 下面是一些公式示例,用于在 Excel 中将单元格从文本转换为日期。

Week 24-2013=DATE(MID(A2,9,4),1,-2)-WEEKDAY(DATE(MID(A2,9,4),1,3))+MID(A2,6,2)*7

2013/03/21=DATEVALUE(A1)

2013-mar-12=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))

转换单元格后,必须通过选择单元格或整列将其格式设置为日期。 然后,打开“上下文”菜单,选择“设置单元格格式”,然后从“类别”列表中选择“日期”。 还可以使用 Excel 文本分列向导将文本单元格转换为格式正确的日期。

不支持

如果工作表数据的格式不同于上述格式,则在导入时可能会导致不可预测的结果。 最好对 Excel 文件的工作表进行限制,即仅适用于移动报表正确格式的工作表。

Excel 工作表中的自定义对象(包括数据透视表、可视化功能以及图像)不能导入到移动报表发布服务器。