Я должен импортировать листы, которые похожи на следующее:
March Orders
***Empty Row
Week Order # Date Cust #
3.1 271356 3/3/10 010572
3.1 280353 3/5/10 022114
3.1 290822 3/5/10 010275
3.1 291436 3/2/10 010155
3.1 291627 3/5/10 011840
Заголовки столбцов являются на самом деле строкой 3. Я могу использовать Excel Sourch для импорта их, но я не знаю, как указать, что информация запускается в строке 3.
Я Погуглил проблему, но подошел пустой.
посмотрите:
ссылки содержат более подробную информацию, но я добавил текст со страниц (на случай, если ссылки не работают)
Q:
Пока мы загружаем текстовый файл в SQL Сервер через SSIS, у нас есть возможность пропускать любое количество ведущих строк из источника и загружать данные на SQL-сервер.Есть ли положение, чтобы сделать то же самое для файла Excel .
Исходный файл Excel для меня имеет некоторое описание в первых 5 строках, я хочу пропустить его и начать загрузку данных с строки 6. Пожалуйста, выскажите свое мнение по этому поводу.
A:
Проще всего было бы присвоить каждой строке номер (что-то вроде идентификатора в SQL Server), а затем использовать условное разбиение, чтобы отфильтровать все , где число <= 5
Q:
Возможно ли при импорте данных из Таблица Excel в БД, например, пропускает первые 6 строк?
Также данные Excel разделены на разделы с заголовками. Например, можно ли пропустить каждую 12-ю строку?
A:
ДА, ВЫ МОЖЕТЕ. На самом деле, вы можете сделать это очень легко, если знаете, какие столбцы с номерами будут импортированы из вашего файла Excel. В задаче «Поток данных» вам нужно будет установить настраиваемое свойство "OpenRowset" для подключения к Excel (щелкните правой кнопкой мыши подключение к Excel> Свойства ; в окне "Свойства" найдите OpenRowset в разделе "Пользовательские свойства"). Чтобы игнорировать первые 5 строк в Sheet1 и импортировать столбцы AM, вы должны ввести следующее значение для OpenRowset: Sheet1 $ A6: M (обратите внимание, я не указал номер строки для столбца M. Вы можете ввести номер строки , если хотите, но в моем случае количество строк может изменяться от одной итерации к следующей)
ОПЯТЬ, ДА, ВЫ МОЖЕТЕ. Вы можете импортировать данные с помощью условного разделения.Вы бы сконфигурировали условное разбиение для поиска в каждой строке, что однозначно идентифицирует это как строку заголовка; пропустить строки , соответствующие этой «логике заголовка». Другой вариант - импортировать все строки, а затем удалить строки заголовков с помощью сценария SQL в базе данных ... как курсор, удаляющий каждую 12-ю строку. Или вы можете добавить поле идентификации с начальным значением / приращением 1/1, а затем удалить все строки с номерами, которые идеально делятся на 12. Что-то вроде , что ...
Вопрос:
У меня есть пакет SSIS, который импортирует из файл Excel с данными , начинающимися в 7-й строке.
В отличие от той же операции с файлом CSV ('Заголовочные строки, которые нужно пропустить' в редакторе диспетчера подключений), я не могу найти способ игнорировать первые 6 строк подключение файла Excel.
Я предполагаю, что ответ может быть в одном из объектов преобразования потока данных, но я не очень хорошо с ними знаком.
A:
Вопрос Войдите, чтобы проголосовать 1 Войдите, чтобы проголосовать rbhro, на самом деле было 2 поля в верхних 5 строках с некоторыми данными, которые, как мне кажется, помешали импортеру от полного игнорирования этих строк.
Так или иначе, я нашел решение своей проблемы.
В моем исходном объекте Excel я использовал «SQL-команду» в качестве «Режима доступа к данным » (он раскрывается при двойном щелчке по исходному объекту Excel). Оттуда я смог создать запрос (кнопка "Создать запрос"), который собирал только нужные мне записи.Примерно так: SELECT F4, F5, F6 FROM [Spreadsheet $] WHERE (F4 IS NOT NULL) AND (F4 <> 'TheHeaderFieldName')
Примечание. Сначала я попробовал ISNUMERIC вместо IS NOT NULL, но по какой-то причине не поддерживался.
В моем конкретном случае меня интересовали только строки, в которых F4 не было NULL (и, к счастью, F4 не содержал мусора в первых 5 строках). Я мог пропустить всю строку заголовка (строка 6)со вторым предложением WHERE .
Таким образом, мой источник данных был полностью очищен. Все, что мне нужно было сделать сейчас , это добавить объект преобразования данных между источником и местом назначения (все, что нужно было преобразовать из юникода в электронную таблицу), , и это сработало.
Мое первое предложение - не принимать файлы в этом формате. Импортируемые файлы Excel всегда должны начинаться со строк заголовков столбцов. Отправьте его тому, кто вам его предоставит, и попросите исправить свой формат. Это работает в большинстве случаев.
Мы предоставляем нашим клиентам и поставщикам инструкции о том, как файлы должны быть отформатированы, прежде чем мы сможем их обработать, и они должны максимально соответствовать этим рекомендациям. Люди часто не знают, что такие файлы создают проблемы при обработке (в следующем месяце у них может быть шесть строк до начала данных), и их нужно объяснить, что файлы Excel должны начинаться с заголовков столбцов, не иметь пустых строк в в середине данных и не повторять заголовки несколько раз, и, что наиболее важно, они должны иметь одни и те же столбцы с одинаковыми названиями столбцов в одном и том же порядке каждый раз. Если они не могут этого предоставить, то, вероятно, у вас нет чего-то, что работало бы для автоматического импорта, поскольку вы будете каждый раз получать файл в другом формате, в зависимости от настроения человека, который ведет электронную таблицу Excel.Между прочим, мы очень стараемся никогда не получать данные из Excel (работает только в некоторых случаях, но если у них есть данные в базе данных, они обычно могут их разместить). Они также должны знать, что любые изменения, которые они вносят в формат электронной таблицы, приведут к изменению пакета импорта и что с них будет взиматься плата за эти изменения разработки (при условии, что это внешние клиенты, а не внутренние). Об этих изменениях необходимо сообщить заранее и запланировать время для разработчиков, файл с неправильным форматом не сработает и будет возвращен им для исправления, если нет.
Если это не сработает, могу я предложить вам открыть файл, удалить первые две строки и сохранить текстовый файл в потоке данных. Затем напишите поток данных, который будет обрабатывать текстовый файл. SSIS проделал паршивую работу по поддержке Excel, и все, что вы можете сделать, чтобы получить файл в другом формате, в конечном итоге упростит жизнь.