Работа с Excel в C#

Работа с Excel в C#

Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать о том, как работать с Microsoft Excel, используя язык C#. Для этого в проект необходимо добавить ссылку на библиотеку Microsoft Excel Object Library. Версия библиотеки будет зависеть от того, какая версия офиса у вас установлена. Давайте реализуем следующий пример: необходимо в ячейки первой строки записать числа от 1 до 10, на второй строке в первой ячейке посчитать их сумму, используя формулу в Excel. Также у данной ячейки необходимо выделить границы.

Также в данном примере я хочу показать, как строить круговую диаграмму в Excel на C# и заполнять её данными.

Сразу приведу код:

using Excel = Microsoft.Office.Interop.Excel;

namespace TestProjectExcel
{
  class Program
  {
    static void Main(string[] args)
    {
      // Создаём экземпляр нашего приложения
      Excel.Application excelApp = new Excel.Application();
      // Создаём экземпляр рабочий книги Excel
      Excel.Workbook workBook;
      // Создаём экземпляр листа Excel
      Excel.Worksheet workSheet;

      workBook = excelApp.Workbooks.Add();
      workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(1);

      // Заполняем первую строку числами от 1 до 10
      for (int j = 1; j <= 10; j++)
      {
        workSheet.Cells[1, j] = j;
      }
      // Вычисляем сумму этих чисел
      Excel.Range rng = workSheet.Range["A2"];      
      rng.Formula = "=SUM(A1:L1)";
      rng.FormulaHidden = false;

      // Выделяем границы у этой ячейки
      Excel.Borders border = rng.Borders;
      border.LineStyle = Excel.XlLineStyle.xlContinuous;
      
      // Строим круговую диаграмму
      Excel.ChartObjects chartObjs = (Excel.ChartObjects)workSheet.ChartObjects();    
      Excel.ChartObject chartObj = chartObjs.Add(5, 50, 300, 300);
      Excel.Chart xlChart = chartObj.Chart;
      Excel.Range rng2 = workSheet.Range["A1:L1"];
      // Устанавливаем тип диаграммы
      xlChart.ChartType = Excel.XlChartType.xlPie;
      // Устанавливаем источник данных (значения от 1 до 10)
      xlChart.SetSourceData(rng2);

      // Открываем созданный excel-файл
      excelApp.Visible = true;
      excelApp.UserControl = true;
    }
  }
}

В данной статье вы немного познакомились с тем, как работать с Excel, используя C#.

В статьях, посвященных вставке текста в Word, используя закладки (Bookmarks) мы познакомились с технологиями OpenXML и GemBox. С файлами Excel эти технологии также успешно работают, а OpenXML является предпочтительным вариантом работы, так как бесплатен и не требует установки Microsoft Excel. Возможно в следующих статьях рассмотрим пару примеров.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *