#sql #excel-2007
#sql #excel-2007
Вопрос:
Я хочу импортировать данные Excel 2007 без промежуточных итогов и итогов с помощью Sql Server Studio. Я пытался импортировать напрямую, но также содержит промежуточные итоги и итоги. Есть ли прямой способ сделать это?
Или есть альтернативный способ сделать этот импорт?
Редактировать 1 Добавлен формат Excel
Я не использую какой-либо запрос, просто используя sql wizard для импорта. Просто пытаюсь сделать это без каких-либо скриптов.
Формат Excel
ProgramID | Name | Amount
20 | Adrian | 20
20 | Jack | 35
Sub Total 55 <== This I do not want to import
21 | Janet | 25
21 | Jill | 20
Sub Total 45 <== This I do not want to import
Total 100 <== This I do not want to import
Комментарии:
1. пожалуйста, предоставьте пример таблицы, которую вы импортируете, а также запрос, который вы используете для импорта. Я думаю, что единственным способом будет отфильтровать строки, которые являются итогами.
2. @TI Я обновил свой вопрос
Ответ №1:
Если вы используете OPENROWSET
then, вы можете просто добавить предложение where в запрос
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;HDR=YES;Database=pathtothe.xlsx',
'SELECT * FROM [sheet_name$] WHERE NAME NOT LIKE ''%Total%'' AND NAME <> ''''')
Если вам нужно настроить поставщиков и т. Д. Я рекомендую прочитать это, в котором также приведены примеры и альтернативные методы импорта данных из Excel.
Используя Задачи -> Импортировать данные; после настройки источника и назначения выберите «написать запрос …», затем используйте аналогичный запрос, как указано выше, например
SELECT * FROM `sheet_name #sql #excel-2007 #sql #excel-2007
Вопрос:
Я хочу импортировать данные Excel 2007 без промежуточных итогов и итогов с помощью Sql Server Studio. Я пытался импортировать напрямую, но также содержит промежуточные итоги и итоги. Есть ли прямой способ сделать это? Или есть альтернативный способ сделать этот импорт? Редактировать 1 Добавлен формат Excel Я не использую какой-либо запрос, просто используя sql wizard для импорта. Просто пытаюсь сделать это без каких-либо скриптов. Формат ExcelProgramID | Name | Amount 20 | Adrian | 20 20 | Jack | 35 Sub Total 55 <== This I do not want to import 21 | Janet | 25 21 | Jill | 20 Sub Total 45 <== This I do not want to import Total 100 <== This I do not want to import
Комментарии:
1. пожалуйста, предоставьте пример таблицы, которую вы импортируете, а также запрос, который вы используете для импорта. Я думаю, что единственным способом будет отфильтровать строки, которые являются итогами.
2. @TI Я обновил свой вопрос
Ответ №1:
Если вы используете
OPENROWSET
then, вы можете просто добавить предложение where в запросSELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES;Database=pathtothe.xlsx', 'SELECT * FROM [sheet_name$] WHERE NAME NOT LIKE ''%Total%'' AND NAME <> ''''')
Если вам нужно настроить поставщиков и т. Д. Я рекомендую прочитать это, в котором также приведены примеры и альтернативные методы импорта данных из Excel.
Используя Задачи -> Импортировать данные; после настройки источника и назначения выберите "написать запрос ...", затем используйте аналогичный запрос, как указано выше, например
WHERE `Name` NOT LIKE "%Total%" AND Name <> ""
По какой-то причине использование запроса приводит к путанице в ссылке сопоставления типов данных. Итак, основываясь на ссылке, которую я добавил
<!-- VarChar Query Kludge --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>200</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping> <!-- NVarChar Query Kludge --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>202</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_WSTR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping>
Что
AceToSSIS.xml
, казалось, «решило» проблему.
Комментарии:
1. Не уверен, что я все понимаю, попробую, когда у меня будет время, и обновлю здесь