Перемещение листов Excel из рабочей книги в другую с помощью служб SSIS - PullRequest
1 голос
/ 11 февраля 2020

У меня есть код, который должен переместить лист шаблона Excel в новую рабочую книгу (см. Ниже)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;

namespace CodeCall
{
    public class Excel
    {
        public static void Main()
        {
            ApplicationClass app = new ApplicationClass();
            Workbook curWorkBook = null;
            Workbook destWorkbook = null;
            Worksheet workSheet = null;
            Worksheet newWorksheet = null;
            Object defaultArg = Type.Missing;
            try
            {
                // Copy the source sheet
                curWorkBook = app.Workbooks.Open("filepath1", defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg);
                workSheet = (Worksheet)curWorkBook.Sheets[1];
                workSheet.UsedRange.Copy(defaultArg);

                // Paste on destination sheet
                destWorkbook = app.Workbooks.Open("filepath2", defaultArg, false, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg, defaultArg);
                newWorksheet = (Worksheet)destWorkbook.Worksheets.Add(defaultArg, defaultArg, 6, defaultArg);
                newWorksheet.UsedRange._PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
            }
            catch (Exception exc)
            {
                System.Windows.Forms.MessageBox.Show(exc.Message);
            }
            finally
            {
                if (curWorkBook != null)
                {
                    curWorkBook.Save();
                    curWorkBook.Close(defaultArg, defaultArg, defaultArg);
                }

                if (destWorkbook != null)
                {
                    destWorkbook.Save();
                    destWorkbook.Close(defaultArg, defaultArg, defaultArg);
                }
            }
            app.Quit();
        }
    }
}

Когда я запускаю код, я получаю это сообщение об ошибке:

Ошибка: невозможно загрузить скрипт для выполнения.

Я уже пытался скопировать и вставить код скрипта в новое задание.

Есть идеи?

1 Ответ

0 голосов
/ 13 февраля 2020

Я смог ее решить.

  1. Мне нужно было добавить точку входа Script в код

    [SSISScriptTaskEntryPoint]//Attribute]
    
    public partial class ScriptMain : VSTARTScriptObjectModelBase
    
  2. Удалить «Excel» publi c class

Извлечение кода из «Publi c Stati c Void Main ()», вставка его в новый шаблон «Задача сценария» и обновление пространства имен соответственно исправили это.

...