Если вы запустите приложение, то сможете затем открыть файл Inventory.xlsx
\bin\Debug\net5.0 вашего проекта.Хотя не похоже, что в предыдущем коде использовались какие-либо динамические данные, имейте в виду, что среда DLR оказала значительную помощь. Без среды DLR код пришлось записывать примерно так:
static void ExportToExcelManual(List
{
Excel.Application excelApp = new Excel.Application();
// Потребуется пометить пропущенные параметры!
excelApp.Workbooks.Add(Type.Missing);
// Потребуется привести объект Object к _Worksheet!
Excel._Worksheet workSheet =
(Excel._Worksheet)excelApp.ActiveSheet;
// Потребуется привести каждый объект Object к Range
// и затем обратиться к низкоуровневому свойству Value2!
((Excel.Range)excelApp.Cells[1, "A"]).Value2 = "Make";
((Excel.Range)excelApp.Cells[1, "B"]).Value2 = "Color";
((Excel.Range)excelApp.Cells[1, "C"]).Value2 = "Pet Name";
int row = 1;
foreach (Car c in carsInStock)
{
row++;
// Потребуется привести каждый объект Object к Range
// и затем обратиться к низкоуровневому свойству Value2!
((Excel.Range)workSheet.Cells[row, "A"]).Value2 = c.Make;
((Excel.Range)workSheet.Cells[row, "B"]).Value2 = c.Color;
((Excel.Range)workSheet.Cells[row, "C"]).Value2 = c.PetName;
}
// Потребуется вызвать метод get _ Range()
// с указанием всех пропущенных аргументов!
excelApp.get_Range("A1", Type.Missing).AutoFormat(
Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
// Потребуется указать все пропущенные необязательные аргументы!
workSheet.SaveAs(
$@"{Environment.CurrentDirectory}\InventoryManual.xlsx",
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
excelApp.Quit();
Console.WriteLine("The InventoryManual.xslx file has been saved to your app folder");
// Файл Inventory.xslx сохранен в папке приложения.
}
На этом рассмотрение ключевого слова dynamic
В то время как о среде DLR можно еще рассказать многое, основное внимание в главе было сосредоточено на темах, практичных и полезных при повседневном программировании. Если вы хотите изучить расширенные средства DLR, такие как интеграция с языками написания сценариев, тогда обратитесь в документацию по .NET Core (начните с поиска темы "Dynamic Language Runtime Overview" ("Обзор исполняющей среды динамического языка")).
Резюме
Ключевое слово dynamic