Member 14117959 Ответов: 4

Проблема Excel в формате C#


- привет!


Можно ли форматировать excel на языке c#? И если я могу, то как мне это сделать?

Что я уже пробовал:

Ничего, сначала мне нужно понять, возможно ли это

Richard Deeming

NB: Если вы пишете веб-сайт, службу Windows или что-то еще, что работает в фоновом режиме, а не в интерактивном сеансе, то вы не можете использовать Office Interop:

Рекомендации по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.

В этом случае вам нужно будет использовать альтернативную библиотеку - например:
* EPPlus[^];
* ClosedXML[^];
* SDK OpenXML[^];

4 Ответов

Рейтинг:
1

Patrice T

Цитата:
Можно ли форматировать excel на языке c#?

Да, это может.
Цитата:
И если я могу, то как мне это сделать?

Если вы можете сделать это с помощью Excel и мыши/клавиатуры, Excel может рассказать вам, как конвертировать в код.
- Открой XL, приготовься что-нибудь делать.
- Начните записывать макрос
с xl2003, Меню > Инструменты > макрос > новый макрос
с лентой используйте ленту Dev
- Делай свое дело
- Остановить запись макросов
- Открытые ВБЕ (визуальный элемент базовый редактор)
- Код макроса-это то, как ваши вещи переводятся в код.
Даже если код нуждается в настройке, VBA близок к тому, что вам нужно для C#.
Небольшой поиск в интернете даст недостающую информацию.


Рейтинг:
1

James Walsh Jr

Вот простой пример. Существует тонны информации в MSDN по C# и взаимодействия библиотек.

Microsoft.Office.Tools.Excel.NamedRange myRange =
this.Controls.AddNamedRange(this.Range["A1", "A5"], "myRange");

myRange.NoteText("This is a Formatting test", missing, missing);
myRange.Value2 = "Text I want to Format";
myRange.Font.Name = "Arial";
myRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
myRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;


Рейтинг:
0

Kevin Marois

Google Microsoft Office Interop на C# или Excel Automation на C#