【发布时间】:2018-01-26 01:56:59
【问题描述】:
我正在使用代码来测试某些文件是否存在,如果存在,请添加它们的路径以及它们的选项卡名称(当我将它们添加到 Excel 时)。它可以工作,但现在它有很多重复的代码。我想创建一个我调用的方法,如果为真则返回对象,如果文件不存在则返回任何内容。这是我的代码:
// Add Open_SI
if (File.Exists(CurrentWorkbook.DataPath + "OPEN_SI-en-us.xlsx"))
{
FileInfo OpenSI = new FileInfo(CurrentWorkbook.DataPath + "OPEN_SI-en-us.xlsx");
if (OpenSI.Length > 5000)
File.Copy(CurrentWorkbook.DataPath + "OPEN_SI-en-us.xlsx", CurrentWorkbook.DataPath + "OPEN_SI.xlsx", true);
if (File.Exists(CurrentWorkbook.DataPath + "OPEN_SI.xlsx"))
worksheets.Add(new WorkSheets() { Path = (CurrentWorkbook.DataPath + "OPEN_SI"), TabName = "SI" });
}
// Add Pipe Sheet
if (File.Exists(CurrentWorkbook.DataPath + "Pipe_Supply-en-us.xlsx"))
{
FileInfo Pipe = new FileInfo(CurrentWorkbook.DataPath + "Pipe_Supply-en-us.xlsx");
if (Pipe.Length > 5000)
File.Copy(CurrentWorkbook.DataPath + "Pipe_Supply-en-us.xlsx", CurrentWorkbook.DataPath + "Pipe.xlsx", true);
if (File.Exists(CurrentWorkbook.DataPath + "Pipe.xlsx"))
worksheets.Add(new WorkSheets() { Path = (CurrentWorkbook.DataPath + "Pipe"), TabName = "Pipe" });
}
我多次重复该代码,如果我进行更改,我当然需要对所有这些进行更改。之后,我使用以下代码将它们添加为 excel 中的选项卡:
for (var i = 0; i < worksheets.Count; i++)
{
excelApp.Run("CopySheets", worksheets[i].Path, worksheets[i].TabName, CurrentWorkbook.Version)
}
如何将该代码简化为单个方法调用?对不起,如果这看起来很简单,但我还没有创建任何在条件语句上返回对象的方法。
【问题讨论】:
-
你知道如何创建方法吗?从一个返回简单结果怎么样?使用条件从一个方法返回不同的结果并不比这复杂多少......只需尝试创建一个新方法,然后告诉我们您到底遇到了什么问题。
标签: c# excel office-interop vba