Обзор
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)
Lolohaev
20.06.2023 14:41+4Немного странная статья.
К данной библиотеке можно прибегнуть если есть ограничение на формат 2003 года, если же мы вольны пользоваться новой версией файла, то openxml куда удобнее и проще в использовании. И никто не будет предлагать заплатить за расширенные возможности коммерческого продукта.
petuhov_k
20.06.2023 14:41Переводы теперь никак не помечаются? Или автор не русскоговорящ?
YuryZakharov
20.06.2023 14:41Просто кто-то обучил нейросеть на выборке с Aliexpress. Ну, или пробудили древнее зло, Промпт.
dyadyaSerezha
20.06.2023 14:41+4Заголовок неверный. Запись данных не в Excel, а в Excel-файл. Сам Excel не открывается вообще.
Правильный заголовок: работа с файлами Excel в С#.
Linder666
20.06.2023 14:41только было хотел сказать, а нафига эта прослойка, если Interop нормально работает) А оно вон оно как, совсем без Excel'я
k-semenenkov
20.06.2023 14:41+2Я в последнее время остановился на https://github.com/salvois/LargeXlsx. Малюсенький (длл около 50к) и позволяет создавать большие файлы при небольшом потреблении памяти.
dopusteam
20.06.2023 14:41Free Spire.XLS for .NET - это очень мощный компонент Excel, который может помочь разработчикам легко создавать, читать и редактировать документы Excel, тем самым.
"Тем самым" что? Или кому, тем самым? Или чем, тем самым?
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 и работать как с базой данных. Но там свои нюансы.
aborouhin
20.06.2023 14:41+1Город в профиле автора и город в контактах разработчика библиотек Spire удивительным образом совпадают (Chengdu, Sichuan, Китай). Что объясняет как выбор библиотеки, так и неидеальный русский язык :)
now
20.06.2023 14:41
gdt
That's the neat part, you don't
/s