Обратите внимание на псевдоним Excel
Microsoft.Office.Interop.Excel. Хотя при взаимодействии с библиотеками СОМ псевдоним определять не обязательно, это обеспечивает наличие более короткого квалификатора для всех импортированных объектов СОМ. Он не только снижает объем набираемого кода, но также разрешает проблемы, когда объекты СОМ имеют имена, конфликтующие с именами типов .NET Core.Далее создайте список записей Car
Program.cs:// Создать псевдоним для объектной модели Excel.
using Excel = Microsoft.Office.Interop.Excel;
Next, create a list of Car records in the top-level statements in Program.cs:
List
{
new Car {Color="Green", Make="VW", PetName="Mary"},
new Car {Color="Red", Make="Saab", PetName="Mel"},
new Car {Color="Black", Make="Ford", PetName="Hank"},
new Car {Color="Yellow", Make="BMW", PetName="Davie"}
}
Поскольку вы импортировали библиотеку СОМ с использованием Visual Studio, сборка PIA автоматически сконфигурирована так, что используемые метаданные будут встраиваться в приложение .NET Core. Таким образом, все типы данных Variant
dynamic. Взгляните на показанную ниже реализацию метода ExportToExcel():void ExportToExcel(List
{
// Загрузить Excel и затем создать новую пустую рабочую книгу.
Excel.Application excelApp = new Excel.Application();
excelApp.Workbooks.Add();
// В этом примере используется единственный рабочий лист.
Excel._Worksheet workSheet = (Excel._Worksheet)excelApp.ActiveSheet;
// Установить заголовки столбцов в ячейках.
workSheet.Cells[1, "A"] = "Make";
workSheet.Cells[1, "B"] = "Color";
workSheet.Cells[1, "C"] = "Pet Name";
// Сопоставить все данные из List
int row = 1;
foreach (Car c in carsInStock)
{
row++;
workSheet.Cells[row, "A"] = c.Make;
workSheet.Cells[row, "B"] = c.Color;
workSheet.Cells[row, "C"] = c.PetName;
}
// Придать симпатичный вид табличным данным.
workSheet.Range["A1"].AutoFormat
(Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);
// Сохранить файл, завершить работу Excel и отобразить сообщение пользователю.
workSheet.SaveAs($@"{Environment.CurrentDirectory}\Inventory.xlsx");
excelApp.Quit();
Console.WriteLine("The Inventory.xslx file has been saved to your app folder");
// Файл Inventory.xslx сохранен в папке приложения.
}
Метод ExportToExcel()
Excel в память; однако на рабочем столе оно не отобразится. В данном приложении нас интересует только работа с внутренней объектной моделью Excel. Тем не менее, если необходимо отобразить пользовательский интерфейс Excel, тогда метод понадобится дополнить следующим кодом:static void ExportToExcel(List
{
// Загрузить Excel и затем создать новую пустую рабочую книгу.
Excel.Application excelApp = new Excel.Application();
// Сделать пользовательский интерфейс Excel видимым на рабочем столе.
excelApp.Visible = true;
...
}
После создания пустого рабочего листа добавляются три столбца, именованные в соответствии со свойствами класса Car
List, и файл сохраняется с жестко закодированным именем Inventory.xlsx.