在c#中编辑现有Excel文件。例外情况
因此,我在主窗口的同一wpf应用程序中创建了一个Excel文件。 现在,我想编辑该文件,以便添加另一个工作表并在其上放置一些数据 文件本身创建得很好,并将所有必要的数据放在上面,但是当我再次尝试调用它时,出现了一个COMExcpetion,它说它找不到文件,但文件在那里 我想这不算什么市长,但非常感谢你的帮助 代码如下:在c#中编辑现有Excel文件。例外情况,c#,wpf,excel,C#,Wpf,Excel,因此,我在主窗口的同一wpf应用程序中创建了一个Excel文件。 现在,我想编辑该文件,以便添加另一个工作表并在其上放置一些数据 文件本身创建得很好,并将所有必要的数据放在上面,但是当我再次尝试调用它时,出现了一个COMExcpetion,它说它找不到文件,但文件在那里 我想这不算什么市长,但非常感谢你的帮助 代码如下: private void Nextday_Click(object sender, RoutedEventArgs e) { Microsoft.Off
private void Nextday_Click(object sender, RoutedEventArgs e)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
xlApp.Visible = true;
Workbook wb = xlApp.Workbooks.Open(@"C:Users\Public\Documents\Report.xls");
Worksheet ws2 = (Worksheet)wb.Worksheets[2];
ws2.Name = "Part Function";
object misValue = System.Reflection.Missing.Value;
int i = 1;
ws2.Cells[i, 1] = "Part Function Auto";
i++;
ws2.Cells[i, 1] = "Problem Reported in TestID#:";
i++;
ws2.Cells[i, 1] = "Problem is:";
i++;
ws2.Cells[2, 2] = testBox.Text;
wb.Save();
wb.Close();
}
下面是我最初创建Excel文件的方式
private void submit_Click(object sender, RoutedEventArgs e)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
xlApp.Visible = false;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
ws.Name = "Personal Info";
wb.Sheets.Add(After: wb.Sheets[wb.Sheets.Count]);
object misValue = System.Reflection.Missing.Value;
TextRange programTxt = new TextRange(program.Document.ContentStart, program.Document.ContentEnd);
TextRange dateTxt = new TextRange(date.Document.ContentStart, date.Document.ContentEnd);
TextRange vinTxt = new TextRange(vin.Document.ContentStart, vin.Document.ContentEnd);
TextRange dandrTxt = new TextRange(dandr.Document.ContentStart, dandr.Document.ContentEnd);
TextRange cdsidTxt = new TextRange(cdsid.Document.ContentStart, cdsid.Document.ContentEnd);
TextRange milestoneTxt = new TextRange(milestone.Document.ContentStart, milestone.Document.ContentEnd);
TextRange alertTxt = new TextRange(alert.Document.ContentStart, alert.Document.ContentEnd);
int i = 1;
ws.Cells[i, 1] = "Program:";
i++;
ws.Cells[i, 1] = "Date:";
i++;
ws.Cells[i, 1] = "VIN:";
i++;
ws.Cells[i, 1] = "D & R:";
i++;
ws.Cells[i, 1] = "CDS ID:";
i++;
ws.Cells[i, 1] = "Milestone:";
i++;
ws.Cells[i, 1] = "Alert:";
i++;
ws.Cells[i, 1] = "Region:";
i++;
int j = 1;
ws.Cells[j, 2] = programTxt.Text;
j++;
ws.Cells[j, 2] = dateTxt.Text;
j++;
ws.Cells[j, 2] = vinTxt.Text;
j++;
ws.Cells[j, 2] = dandrTxt.Text;
j++;
ws.Cells[j, 2] = cdsidTxt.Text;
j++;
ws.Cells[j, 2] = milestoneTxt.Text;
j++;
ws.Cells[j, 2] = alertTxt.Text;
j++;
if (EU.IsChecked == true)
{
ws.Cells[j, 2] = EU.Content;
j++;
}
if (Canada.IsChecked == true)
{
ws.Cells[j, 2] = Canada.Content;
j++;
}
if (USA.IsChecked == true)
{
ws.Cells[j, 2] = USA.Content;
j++;
}
wb.SaveAs(@"C:Users\Public\Documents\Report.xls");
wb.Close();
}
编辑,修正
所以,我们修好了!
我真的不知道为什么,但显然是文件路径的问题。我把它改为WB=\u Excel.Workbooks.Open(“C:\\Users\\Public\\Documents\\Report.xls”)代码>
现在它工作了 您可能仍然锁定了该文件。您需要关闭工作簿和应用程序
wb.Close();
ws.Close();
xlapp.Quit();
我这样做了,但仍然不起作用,和以前一样的错误。谢谢你!我也应该关闭应用程序。这有帮助吗?是的,很多!谢谢:)