Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SSIS中编写C#脚本以操作excel工作表_C#_Vba_Ssis - Fatal编程技术网

在SSIS中编写C#脚本以操作excel工作表

在SSIS中编写C#脚本以操作excel工作表,c#,vba,ssis,C#,Vba,Ssis,我正在尝试在SSIS中创建一个脚本C#,以便在Excel的工作表中创建一个新列 我需要知道excel中单元格的缩进级别,为此,我必须使用此值创建一个新列 我正在尝试这样做(用c#编写脚本): 在VBA中,工作方式如下(在Excel中的VBA中编写脚本): 在C#中,我该怎么做?我什么都试了,但都没用 完整脚本: xlApp = new _Excel.Application(); xlApp.Visible = true; o

我正在尝试在SSIS中创建一个脚本C#,以便在Excel的工作表中创建一个新列

我需要知道excel中单元格的缩进级别,为此,我必须使用此值创建一个新列

我正在尝试这样做(用c#编写脚本):

在VBA中,工作方式如下(在Excel中的VBA中编写脚本):

在C#中,我该怎么做?我什么都试了,但都没用

完整脚本:

            xlApp = new _Excel.Application();
            xlApp.Visible = true;
            oWB = (_Excel.Workbook)xlApp.Workbooks.Open(destFile);
            _Excel.Worksheet sheet = (_Excel.Worksheet)xlApp.Worksheets[1];
            sheet.Columns["B:N"].Delete();


            Range values = sheet.get_Range("A13");
            values.Value = sheet.Range["B13"].IndentLevel();

去掉括号似乎能正确地完成任务

            string destFile = @"E:\StackOverflow\Sample.xlsx";

            var xlApp = new Microsoft.Office.Interop.Excel.Application();
            xlApp.Visible = true;

            var oWB = (Microsoft.Office.Interop.Excel.Workbook)xlApp.Workbooks.Open(destFile);
            Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlApp.Worksheets[1];

            sheet.Range["A16"].Value = sheet.Range["B16"].IndentLevel;
单元格A16中的值设置为B16的缩进级别


另一个注意事项是确保文件没有在其他地方打开,否则代码将打开只读副本。

您的目标是什么?你是想操纵电子表格还是将其读入数据库?@KeithL我想在excel工作表中创建一个新列,以便稍后将其插入数据库我可以帮你阅读,但我没有任何操纵excel的经验。您在SSIS所在的环境中是否有Excel?如果您已经了解了这一点,您还可以选择使用VB.net
            xlApp = new _Excel.Application();
            xlApp.Visible = true;
            oWB = (_Excel.Workbook)xlApp.Workbooks.Open(destFile);
            _Excel.Worksheet sheet = (_Excel.Worksheet)xlApp.Worksheets[1];
            sheet.Columns["B:N"].Delete();


            Range values = sheet.get_Range("A13");
            values.Value = sheet.Range["B13"].IndentLevel();
            string destFile = @"E:\StackOverflow\Sample.xlsx";

            var xlApp = new Microsoft.Office.Interop.Excel.Application();
            xlApp.Visible = true;

            var oWB = (Microsoft.Office.Interop.Excel.Workbook)xlApp.Workbooks.Open(destFile);
            Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlApp.Worksheets[1];

            sheet.Range["A16"].Value = sheet.Range["B16"].IndentLevel;