在SSIS中编写C#脚本以操作excel工作表
我正在尝试在SSIS中创建一个脚本C#,以便在Excel的工作表中创建一个新列 我需要知道excel中单元格的缩进级别,为此,我必须使用此值创建一个新列 我正在尝试这样做(用c#编写脚本): 在VBA中,工作方式如下(在Excel中的VBA中编写脚本): 在C#中,我该怎么做?我什么都试了,但都没用 完整脚本:在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
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;