【问题标题】:Moving Excel Sheets From Workbook to Another Using SSIS使用 SSIS 将 Excel 工作表从工作簿移动到另一个工作簿
【发布时间】:2020-05-26 09:42:15
【问题描述】:

我的代码应该将 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();
        }
    }
}

当我运行代码时,我收到以下错误消息:

错误:无法加载脚本以执行。

我已经尝试将我的脚本代码复制并粘贴到一个新任务中。

有什么想法吗?

【问题讨论】:

    标签: c# excel ssis etl script-task


    【解决方案1】:

    我能够解决它。

    1. 我需要将脚本入口点添加到代码中

      [SSISScriptTaskEntryPoint]//Attribute]
      
      public partial class ScriptMain : VSTARTScriptObjectModelBase
      
    2. 删除“Excel”公共类

    从“Public Static Void Main()”中获取代码,将其粘贴到新的脚本任务模板中并相应地更新命名空间来修复它。

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2020-05-23
      • 2017-09-18
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多