Как удалить данные из таблицы Excel при создании и удалении таблицы с помощью пакета SSIS

#c# #asp.net #sql #sql-server-2008 #ssis

#c# #asp.net #sql #sql-server-2008 #ssis

Вопрос:

Я создал пакет, который будет запрашивать SQL Server и возвращать результаты в Excel, этот пакет должен заменять существующие данные в Excel новыми данными при каждом запуске. Но команда удаления таблицы очищает только заголовки таблицы Excel, а не предыдущие данные. Добавление новых данных в лист не удаляет старые данные.введите описание изображения здесь

Удаление таблицы Я использую эту команду.

   Drop Table `Report`
     Go
  

Создать таблицу :

 CREATE TABLE `Report` (
`EmployeeID` Long,
`EmpName` LongText,
`EmpGrp` LongText
)
GO
  

Пожалуйста, помогите в этом. Как удалить данные из таблицы в Excel.

Комментарии:

1. что вы подразумеваете под в Excel?

2. В первый раз, когда я запускаю этот пакет, он работает отлично. Но я во второй раз запускаю этот пакет, он добавляет новые данные в лист Excel со старыми данными, тогда как я использую команду Drop table для удаления этого листа из Excel, но удаляет только заголовок, а не данные

3. почему вы удаляете таблицу и не используете truncate? и никакого создания не требуется

4. Тогда как добавить новые данные в существующий лист?

Ответ №1:

Вы можете создать файл шаблона, содержащий лист с заголовком, и задача файловой системы копирует его поверх ранее экспортированного файла перед преобразованием потока данных.

Возможно, это решение подойдет для ваших нужд: перезаписать файл Excel в SSIS: обходной путь для диспетчера соединений Excel

Ответ №2:

Одним из способов может быть использование «Задачи сценария» вместо Drop Table для проверки наличия Excel, и если да, то удалите существующий excel.

`

 (File.Exists(Dts.Variables["User::DestinationExcelFilePath"].Value.ToString()))
{
    File.Delete(Dts.Variables["User::DestinationExcelFilePath"].Value.ToString());
}
Dts.TaskResult = (int)ScriptResults.Success;
  

`если

Остальные все выполняют тот же процесс, что и вы делаете прямо сейчас. Также обратите внимание, что для свойства DelayValidation потока управления необходимо установить значение True, чтобы код работал должным образом.