2015-05-29 2 views
1

Я нашел иногда, но не всегда, Excel помещает $ в конце имени листа, но это не видно в Excel, только при попытке импортировать его в SQL Server с помощью C#. С этим я столкнулся с несколькими сценариями.

  1. Это оставляет исходный лист, но и создает второй пустой «скрытый» рабочий лист с $ в конце.
  2. Имеется только 1 рабочий лист, и у него есть данные, но к имени добавляется '$'.
  3. Оригинальный рабочий лист есть с $, и есть еще одна копия с добавлением $_filteredDatabase. (Я был в состоянии найти, что _filteredDatabase где Excel хранит «отфильтрованные» данные.)

Я спрашиваю это в прошлом я был в состоянии сказать мое приложение для импорта, если есть только один рабочий лист или если оно не заканчивается $. Однако было несколько раз, что я закончил с «worksheet$» и «worksheet$_».

Так что мне просто интересно, знает ли кто, что такое $ или почему/когда он добавляется?

+1

У меня нет ответа; Насколько я знаю, Excel 2007 до 2013 года раскрыл имена рабочих листов, добавленные с помощью $ через OLEDB. Sheet1 в Excel отображается как Sheet1 $ через OLEDB. – zedfoxus

+0

Может ли это иметь с листом, имеющим таблицу (VBA ListObject) на нем. Они также отображаются в диалоговых окнах импорта, и я думаю, что они не имеют знака $. Я думаю, вы также увидите $ в конце ссылки на лист. –

ответ

1

При использовании Excel Source -Excel источник извлекает данные из рабочих листов или диапазонов в Microsoft Excel workbooks- SQL Server Books-Online говорит:

Важно:
В Excel, рабочий лист или диапазон является эквивалент таблицы или представления. Список доступных таблиц в редакторах источников Excel и назначения отображает существующие листы (обозначенные знаком $, добавленным к имени рабочего листа, например Sheet1$) и названным диапазонам (идентифицированным по отсутствию знака , например MyRange).

или

Источники данных
источника данных в книге Excel может быть рабочий лист, к которому $ знак должен быть добавлен (например, Sheet1$), или по имени (например, MyRange). В инструкции SQL имя рабочего листа должно быть разграничено (например, [Sheet1$]), чтобы избежать синтаксической ошибки, вызванной знаком $. Query Builder автоматически добавляет эти разделители. Когда вы указываете рабочий лист или диапазон, драйвер считывает смежный блок ячеек, начиная с первой непустой ячейки в верхнем левом углу листа или диапазона. Поэтому вы не можете иметь пустые строки в исходных данных или пустую строку между заголовками или строками заголовка и строками данных.

0

Это означает, что строка или столбец, который идет после знака доллара, закреплен или абсолютен в указанном листе.

для примера: [Лист1 $ A1: B4] означает, что в виду конкретный диапазон от листа если и хотят, чтобы получить диапазон данных должен дать, как и выше

example1: [Лист1 $] означает, со ссылкой все строки и столбцы от Sheet1

+0

Благодарим вас за ответ, но это не тот вопрос, о котором я говорил. При импорте рабочего листа в базу данных SQL (или используя C#, чтобы вытащить таблицу из рабочего листа), иногда при просмотре таблиц есть Sheet1 и Sheet1 $, а иногда просто Sheet1 $. Не относится к ряду ячеек. –