Я нахожусь на моем первом наборе в Excel Interop, и после того, как я начал летать, ударил стену.
У меня есть шаблон Excel, который содержит один лист, который является оценочной формой, и другой, который содержит указания подля проведения оценки.
У меня также есть файл XML с подробной информацией об оцениваемых проектах.
Мне нужно объединить название проекта, номер заявки и название компании в первый листи затем сохраните лист с именем файла [№ приложения] - [Название проекта] .xlsx.
Первая часть работает нормально.Я загрузил XML, и код помещает данные в форму, где они должны быть.
Моя проблема заключается в сохранении.Я нашел метод .SaveAs, и он создает пару файлов ... но они не открываются.Затем я получаю ошибку HRESULT 0x800A03EC - Поиск в Интернете ничего не объяснил по этому поводу.Что-то говорит мне, что this.SaveAs () ссылается на рабочий лист, а не на рабочую книгу, но я просто догадываюсь.
Я надеюсь, что сделал что-то глупое, и это легко исправить.
Для справки вот мой код, но, как я уже сказал, я не уверен, насколько он полезен.
private void MergeData()
{
doc.Load(@"C:\XML Data\source.xml");
XmlNodeList forms = doc.SelectNodes("//form1");
for (int i = 0; i < forms.Count; i++)
{
XmlNodeList nodes = forms[i].ChildNodes;
string refNo = nodes[0].InnerText.ToString();
string companyName = nodes[3].InnerText.ToString();
string title = nodes[1].InnerText.ToString();
this.Cells[9, 4] = title;
this.Cells[11, 4] = refNo;
this.Cells[14, 4] = companyName;
this.SaveAs(@"C:\Assessment Forms\" + refNo + " - " + title + ".xlsx");
}
}
Кто-нибудь знает, как сохранить эти файлы?
Спасибо за чтение
РЕДАКТИРОВАТЬ -
Я нашел эту статью
C # и проблема взаимодействия Excel, сохранение файла Excel не сглаживается
и изменил код, включив в него свое предложение
Excel.Application app = this.Application;
Excel.Workbook wb = app.Workbooks.Add(missing);
wb.SaveAs(@"C:\Assessment Forms\" + refNo + " - " + title + ".xlsx");
Но он делает то же самое.
У меня крайний срок, поэтому думаю, что мне придется начинать копирование, вставку и сохранение вручную(