【发布时间】:2020-03-31 03:02:14
【问题描述】:
我正在使用 Windows 桌面应用程序,我希望打开一个新的 Excel 工作簿和工作表,然后让用户选择一个现有的 Excel 文件,以便程序可以将数据复制到新工作表上。用户应该这样做两次,因为使用了两个 Excel 文件作为参考。
我知道要获取新的 Excel 工作簿和工作表,您需要执行以下操作:
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
oXL = new Excel.Application();
oXL.Visible = true;
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
string sheetName = comboBox1.Text;
oSheet.Name = sheetName;
但是我迷路的是如何引用用户选择的文件...... 你会...
string excelPath = string.Empty;
using (OpenFileDialog excelFile = new OpenFileDialog())
{
excelFile.InitialDirectory = "c:\\";
if(excelFile.ShowDialog() == DialogResult.OK)
{
}
}
之后如何引用所选 Excel 文件中的数据,例如,从 A 列中提取所有内容并将其复制到新的 Excel 文件中?
【问题讨论】:
-
这是否与your question yesterday 相同,还是在其上的增量步骤?至于“如何引用用户选择的文件”,
excelFile.FileName是你要找的吗?然后,您需要阅读并显示该文件中的工作表列表供用户选择。 -
差不多。这个问题更具体,但我不熟悉引用。我确实做了 .FileName 但我认为它没有做任何事情。
-
我已经看到了路径在代码中的路径,但我希望用户确定路径,如果这有意义的话
-
是的。在
if(excelFile.ShowDialog() == DialogResult.OK)内部,您需要访问excelFile.FileName,因为其中包含用户选择的文件的路径。 -
在问题中
OpenFileDialog被命名为excelFile。当然,您需要使用excelFile.FileName并对其进行处理。我对 Excel 自动化 API 不是很熟悉,但是您可以将该路径加载到工作表对象中以获取它包含的工作表的名称,然后向用户显示另一个对话框,让他们选择他们想要的工作表。
标签: c# .net excel office-interop