Язык программирования C#9 и платформа .NET5 - Джепикс Филипп - Страница 343
- Предыдущая
- 343/642
- Следующая
Дополнительной сложностью при работе с взаимодействием с СОМ и .NET 5 является отсутствие поддержки на этапе компиляции и во время выполнения. Версия MSBuild в .NET 5 не способна распознавать библиотеки взаимодействия, поэтому проекты .NET Core, в которых задействовано взаимодействие с СОМ, не могут компилироваться с применением интерфейса командной строки .NET Core. Они должны компилироваться с использованием Visual Studio, и скомпилированный исполняющий файл можно будет запускать вполне ожидаемым способом.
Взаимодействие с СОМ с использованием динамических данных C#
Чтобы продемонстрировать, каким образом необязательные аргументы, именованные аргументы и ключевое слово
dynamicCar.csnamespace ExportDataToOfficeApp{ public class Car { public string Make { get; set; } public string Color { get; set; } public string PetName { get; set; } }}Поместите в начало файла
Program.csusingusing System;using System.Collections.Generic;using System.Reflection;using Excel = Microsoft.Office.Interop.Excel;using ExportDataToOfficeApp;Обратите внимание на псевдоним
ExcelMicrosoft.Office.Interop.ExcelДалее создайте список записей
CarProgram.cs// Создать псевдоним для объектной модели Excel.using Excel = Microsoft.Office.Interop.Excel;Next, create a list of Car records in the top-level statements in Program.cs:List<Car> carsInStock = new List<Car>{ 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. Таким образом, все типы данных
VariantdynamicExportToExcel()void ExportToExcel(List<Car> carsInStock){<b> // Загрузить Excel и затем создать новую пустую рабочую книгу.</b> Excel.Application excelApp = new Excel.Application(); excelApp.Workbooks.Add();<b> // В этом примере используется единственный рабочий лист.</b> Excel._Worksheet workSheet = (Excel._Worksheet)excelApp.ActiveSheet;<b> // Установить заголовки столбцов в ячейках.</b> workSheet.Cells[1, "A"] = "Make"; workSheet.Cells[1, "B"] = "Color"; workSheet.Cells[1, "C"] = "Pet Name";<b> // Сопоставить все данные из List<Car> с ячейками электронной таблицы.</b> 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; }<b> // Придать симпатичный вид табличным данным.</b> workSheet.Range["A1"].AutoFormat (Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);<b> // Сохранить файл, завершить работу Excel и отобразить сообщение пользователю.</b> workSheet.SaveAs($@"{Environment.CurrentDirectory}\Inventory.xlsx"); excelApp.Quit(); Console.WriteLine("The Inventory.xslx file has been saved to your app folder"); // Файл Inventory.xslx сохранен в папке приложения.}Метод
ExportToExcel()ExcelExcelExcel- Предыдущая
- 343/642
- Следующая
