为什么Excel有时会在工作表名称上加上$?

时间:2015-05-29 22:38:23

标签: sql-server excel worksheet

我发现有时但并非总是如此,Excel会在工作表名称的末尾添加$,但只有在尝试使用C#将其导入SQL Server时才能在Excel中看到。我已经遇到了很多不同的情况。

  1. 它会保留原始工作表,但也会创建第二个空白的“隐藏”字样。最后使用$的工作表。
  2. 只有一个工作表,它有数据,但是$'附在名称上。
  3. 原始工作表与$一致,并附加了$_filteredDatabase的另一个副本。 (我发现_filteredDatabase是Excel存储“过滤后的数据”的地方。)
  4. 我问的原因是,如果只有1个工作表或者它没有以$结尾,我可以告诉我的应用程序导入。然而,有几次我最终得到了一个" worksheet$"和" worksheet$_"。

    所以我只是想知道是否有人知道$是什么或为什么/何时被添加?

2 个答案:

答案 0 :(得分:1)

当您使用Excel Source -Excel源从Microsoft Excel工作簿中的工作表或范围中提取数据时 - SQL Server Books-Online说:

  

重要:
  在Excel中,工作表或范围相当于表或视图。 Excel源和目标编辑器中的可用表列表显示现有工作表(由附加到工作表名称的$符号标识,例如Sheet1$)和命名范围(由缺少{ {1}}符号,例如$)。

  

数据来源
  Excel工作簿中的数据源可以是工作表,必须附加MyRange符号(例如,$)或命名范围(例如,Sheet1$) 。在SQL语句中,必须分隔工作表的名称(例如,MyRange)以避免由[Sheet1$]符号引起的语法错误。查询生成器自动添加这些分隔符。指定工作表或范围时,驱动程序将从工作表或范围的左上角的第一个非空单元格开始读取连续的单元格块。因此,源数据中不能有空行,标题行或标题行与数据行之间不能有空行。

答案 1 :(得分:0)

这意味着美元符号后面的行或列在所提到的表格中被锚定或绝对。

例如:[Sheet1 $ A1:B4]表示从Sheet中引用特定范围 如果你想得到如上所述的数据范围

示例1:[Sheet1 $]表示引用Sheet1

中的所有行和列