У меня есть простой метод C #, написанный на Visual Studio Code, который должен создать новую книгу Excel, записать значение в ячейку на листе и затем сохранить файл.
using System;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
namespace Test
{
class ExcelTest
{
public void TestMethod()
{
String outputPath = "C:\\Test.xlsx";
Excel.Application excel = new Excel.Application();
Excel.Workbook workbook = excel.Workbooks.Add(Type.Missing);
Excel.Worksheet sheet = (Excel.Worksheet)workbook.ActiveSheet;
((Excel.Range)sheet.Cells[1,1]).Value = "Hello";
workbook.SaveAs(outputPath);
workbook.Close();
excel.Quit();
}
}
}
При вызове этого метода выполнение кода останавливается на листе ((Excel.Range). Cell [1,1]). Value = "Hello"; строка со следующим исключением:
Исключительная ситуация: CLR / System.NullReferenceException
Произошло необработанное исключение типа «System.NullReferenceException»: «Ссылка на объект не установлена для экземпляра объекта.»
Кажется, что метод взаимодействует с Excel, заменяя строку на 'sheet.Name = "Test";' в результате файл будет сохранен, а рабочая тетрадь содержит один лист с именем «Тест».
Для справки: я использую код Visual Studio и на моем компьютере установлен Excel 2016, а файл .csproj имеет следующие ссылки:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Office.Interop.Excel" Version="*"/>
</ItemGroup>
</Project>
Спасибо