如果文件在 c# 中不存在,则在创建新的 excel 文件时出现错误

问题描述 投票:0回答:1
string path = "F:\\abc\\LoadData.xlsx";

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = null;

//Checking if the file is already exists

if (!System.IO.File.Exists(path))                    
    workbook = app.Workbooks.Add(path);         
else
    workbook = app.Workbooks.Open(path, ReadOnly: false);
Microsoft.Office.Interop.Excel._Worksheet? worksheet = null;
app.Visible = false;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;

当我尝试执行这段代码时,出现如下错误,

抱歉,找不到 F:bc\LoadData.xlsx。是否有可能 > 移动、重命名或删除?

这是我得到的错误:

enter image description here

c# excel office-interop excel-interop office-automation
1个回答
0
投票

以下代码行抛出异常:

workbook = app.Workbooks.Add(path); 

当找不到指定的文件时,将创建一个新的工作簿。但是您传递了一个不存在的模板文件路径。 Workbooks.Add 方法创建一个新工作簿,新工作簿成为活动工作簿。可选参数确定如何创建新工作簿。如果此参数是指定现有 Microsoft Excel 文件名称的字符串,则使用指定文件作为模板创建新工作簿。

所以,当磁盘上不存在文件时,您的代码应该如下所示:

//Checking if the file is already exists

if (!System.IO.File.Exists(path))                    
    workbook = app.Workbooks.Add();         
else
    workbook = app.Workbooks.Open(path, ReadOnly: false);
© www.soinside.com 2019 - 2024. All rights reserved.