Обзор

Excel - широко используемое электронное таблицы программное обеспечение, которое можно использовать для анализа данных, создания отчетов и многих других целей. Мы часто должны записывать данные в Excel для дальнейшей обработки и анализа. В программировании мы можем использовать различные способы записи данных в Excel, например, использование встроенных в Excel COM-компонентов, использование сторонних библиотек и т.д. Free Spire.XLS for .NET - это мощная сторонняя библиотека, которая может помочь нам легко записывать данные в Excel. В этой статье будет описано, как с помощью Free Spire.XLS for .NET записывать различные типы данных в Excel.

Установка Free Spire.XLS for .NET

В первую очередь необходимо открыть Visual Studio и открыть «Менеджер пакетов NuGet» в проекте. В поле поиска введите «FreeSpire.XLS», затем выберите последнюю версию Free Spire.XLS for .NET для установки. После установки мы можем начать использовать его для записи данных в Excel.

Запись текста и чисел в Excel в C#

using Spire.Xls;

namespace WriteDataToCells
{
    class Program
    {
        static void Main(string[] args)
        {
            //Создание объекта Workbook 
            Workbook workbook = new Workbook();

            //Получение первой рабочей страницы
            Worksheet worksheet = workbook.Worksheets[0];

            //Запись данных в определенные ячейки
            worksheet.Range[1, 1].Value = "Имя";
            worksheet.Range[1, 2].Value = "Возраст";
            worksheet.Range[1, 3].Value = "Департамент";
            worksheet.Range[1, 4].Value = "Дата найма";
            worksheet.Range[1, 2].Value = "Хейзел";
            worksheet.Range[2, 2].Value2 = 29;
            worksheet.Range[2, 3].Value = "Маркетинг";
            worksheet.Range[2, 4].Value = "2019-07-01";
            worksheet.Range[3, 1].Value = "Тина";
            worksheet.Range[3, 2].Value2 = 31;
            worksheet.Range[3, 3].Value = "Техническая поддержка";
            worksheet.Range[3, 4].Value = "2015-04-27";

            //Автоматическое подгонка ширины столбцов
            worksheet.AllocatedRange.AutoFitColumns();

            //Применение стиля к первой строке
            CellStyle style = workbook.Styles.Add("newStyle");
            style.Font.IsBold = true;
            worksheet.Range[1, 1, 1, 4].Style = style;

            //Сохранение в файл Excel
            workbook.SaveToFile("WriteToCells.xlsx", ExcelVersion.Version2016);
        }
    }
}

Запись одномерного или двумерного массива в Excel в C#

using Spire.Xls;

namespace WriteArraysToWorksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            //Создание экземпляра Workbook
            Workbook workbook = new Workbook();

            //Получение первой рабочей страницы
            Worksheet worksheet = workbook.Worksheets[0];

            //Создание одномерного массива
            string[] oneDimensionalArray = new string[] { "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь" };

            //Запись массива в первую строку таблицы
            worksheet.InsertArray(oneDimensionalArray, 1, 1, false);

            //Создание двумерного массива
            string[,] twoDimensionalArray = new string[,]{

               {" Имя", "Возраст", "Пол", "Отдел", "Телефон"},
               {"Джон", "25", "Мужской", "Разработка","654214"},
               {"Альберт", "24", "Мужской", "Поддержка","624847"},
               {"Эмили", "26", "Женский", "Продажи","624758"}
            };

            //Запись массива в таблицу, начиная с ячейки A3
            worksheet.InsertArray(twoDimensionalArray, 3, 1);

            //Автоматическое подгонка ширины столбцов
            worksheet.AllocatedRange.AutoFitColumns();

            //Применение стиля к первой и третьей строке
            CellStyle style = workbook.Styles.Add("newStyle");
            style.Font.IsBold = true;
            worksheet.Range[1, 1, 1, 6].Style = style;
            worksheet.Range[3, 1, 3, 6].Style = style;

            //Сохранение в файл Excel
            workbook.SaveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
        }
    }
}

Запись DataTable в Excel в C#

using System;
using System.Data;
using Spire.Xls;

namespace WriteDataTableToWorksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            //Создание экземпляра Workbook
            Workbook workbook = new Workbook();

            //Получение первой рабочей страницы
            Worksheet worksheet = workbook.Worksheets[0];

            //Создание объекта DataTable
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("SKU", typeof(Int32));
            dataTable.Columns.Add("NAME", typeof(String));
            dataTable.Columns.Add("PRICE", typeof(String));

            //Создание строк и добавление данных
            DataRow dr = dataTable.NewRow();
            dr[0] = 512900512;
            dr[1] = "Беспроводная мышь M200";
            dr[2] = "$85";
            dataTable.Rows.Add(dr);

            dr = dataTable.NewRow();
            dr[0] = 512900637;
            dr[1] = "B100 Cored Mouse";
            dr[2] = "$99";
            dataTable.Rows.Add(dr);

            dr = dataTable.NewRow();
            dr[0] = 512901829;
            dr[1] = "Игровая мышь";
            dr[2] = "$125";
            dataTable.Rows.Add(dr);

            dr = dataTable.NewRow();
            dr[0] = 512900386;
            dr[1] = "Оптическая мышь ZM";
            dr[2] = "$89";
            dataTable.Rows.Add(dr);

            //Запись DataTable в таблицу
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);

            //Автоматическое подгонка ширины столбцов
            worksheet.AllocatedRange.AutoFitColumns();

            //Применение стиля к первой строке
            CellStyle style = workbook.Styles.Add("newStyle");
            style.Font.IsBold = true;
            worksheet.Range[1, 1, 1, 3].Style = style;

            //Сохранение в файл Excel
            workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016);
        }
    }
}

Другие функции

Помимо записи данных в Excel, Free Spire.XLS for .NET также поддерживает множество других особенностей, таких как:

  • C#/VB.NET преобразование Excel в PDF

  • C#/VB.NET создание столбчатой диаграммы в Excel

  • C#/VB.NET печать документов Excel

  • C#/VB.NET Завернуть или развернуть текст в ячейках Excel

Выводы

В этой статье мы рассмотрели, как с помощью Spire.XLS for .NET создавать документы Excel и продемонстрировали некоторые распространенные методы записи данных. Free Spire.XLS for .NET - это очень мощный компонент Excel, который может помочь разработчикам легко создавать, читать и редактировать документы Excel, тем самым.

Комментарии (15)


  1. gdt
    20.06.2023 14:41

    That's the neat part, you don't

    /s


  1. Lolohaev
    20.06.2023 14:41
    +4

    Немного странная статья.

    К данной библиотеке можно прибегнуть если есть ограничение на формат 2003 года, если же мы вольны пользоваться новой версией файла, то openxml куда удобнее и проще в использовании. И никто не будет предлагать заплатить за расширенные возможности коммерческого продукта.


  1. MalcolmReynolds
    20.06.2023 14:41
    +2

    Удобнее ClosedXML пока ничего не видел.


  1. petuhov_k
    20.06.2023 14:41

    Переводы теперь никак не помечаются? Или автор не русскоговорящ?


    1. YuryZakharov
      20.06.2023 14:41

      Просто кто-то обучил нейросеть на выборке с Aliexpress. Ну, или пробудили древнее зло, Промпт.


  1. dyadyaSerezha
    20.06.2023 14:41
    +4

    Заголовок неверный. Запись данных не в Excel, а в Excel-файл. Сам Excel не открывается вообще.

    Правильный заголовок: работа с файлами Excel в С#.


    1. Linder666
      20.06.2023 14:41

      только было хотел сказать, а нафига эта прослойка, если Interop нормально работает) А оно вон оно как, совсем без Excel'я


      1. dyadyaSerezha
        20.06.2023 14:41

        Интероп с Excel работает через задницу. Знаю, проходил.


  1. k-semenenkov
    20.06.2023 14:41
    +2

    Я в последнее время остановился на https://github.com/salvois/LargeXlsx. Малюсенький (длл около 50к) и позволяет создавать большие файлы при небольшом потреблении памяти.


    1. Kodzo
      20.06.2023 14:41

      Спасибо за наводку.


  1. dopusteam
    20.06.2023 14:41

    Free Spire.XLS for .NET - это очень мощный компонент Excel, который может помочь разработчикам легко создавать, читать и редактировать документы Excel, тем самым.

    "Тем самым" что? Или кому, тем самым? Или чем, тем самым?


  1. Aipomru
    20.06.2023 14:41

    А чего тут уникального то? Та же ClosedXML:

    using ClosedXML.Excel;

    ...

    var wb = new XLWorkbook();
    var ws = wb.Worksheet(1);
    ws.Name = "Имя листа";

    var tableWithData1 = ws.Cell(1,1).InsertTable(dataTable.AsEnumerable()); // Наша dateTable
    tableWithData1.ShowAutoFilter = false; // "Можно фильтр не отключать"

    ws.Columns().AdjustToContents(); // "Немного косметики"
    wb.SaveAs(fn); // fn - куда пишем

    аналогично массив, только вместо InsertTable -> InsertData,

    Да, и у ClosedXML лицензия MIT...

    Аналогично - EPPlus, лицензия - непонятная/и более другая

    А ещё можно подключить файл Excel через OleDB и работать как с базой данных. Но там свои нюансы.


    1. Dismal
      20.06.2023 14:41

      А как же классика AutoIt? Можно обойтись вовсе без С#


  1. aborouhin
    20.06.2023 14:41
    +1

    Город в профиле автора и город в контактах разработчика библиотек Spire удивительным образом совпадают (Chengdu, Sichuan, Китай). Что объясняет как выбор библиотеки, так и неидеальный русский язык :)