Категория

C# Создание, чтение или обновление документов Excel

2023-10-31 03:28:12

Электронная таблица Excel — это широко используемый формат файлов, который позволяет пользователям организовывать, анализировать и представлять данные в табличном формате. Возможность программного взаимодействия с файлами Excel очень ценна, поскольку позволяет автоматизировать и интегрировать функции Excel в программные приложения. Эта возможность особенно полезна при работе с большими наборами данных, выполнении сложных вычислений или когда данные необходимо динамически генерировать или обновлять. В этой статье вы узнаете, как создавайте, читайте или обновляйте документы Excel на C# и VB.NET с помощью Spire.XLS for .NET.

Установите Spire.XLS for .NET

Для начала вам необходимо добавить файлы DLL, включенные в пакет Spire.XLS for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.XLS

Создайте файл Excel на C#, VB.NET.

Spire.XLS for .NET предлагает множество классов и интерфейсов, которые можно использовать для создания и редактирования документов Excel. Вот список важных классов, свойств и методов, рассматриваемых в этой статье.

Член Описание
Класс рабочей книги Представляет модель книги Excel.
Метод Workbook.Worksheets.Add() Добавляет лист в книгу.
Метод Workbook.SaveToFile() Сохраняет книгу в документ Excel.
Класс рабочего листа Представляет лист в книге.
Свойство Worksheet.Range Получает определенную ячейку или диапазон ячеек из листа.
Свойство Worksheet.Range.Value Получает или задает значение ячейки.
Свойство Worksheet.Rows Получает коллекцию строк на листе.
Метод Worksheet.InsertDataTable() Импортирует данные из DataTable на лист.
Класс CellRange Представляет ячейку или диапазон ячеек на листе.

Ниже приведены шаги по созданию документа Excel с нуля с помощью Spire.XLS for .NET.

  • Создайте объект Workbook.
  • Добавьте рабочий лист с помощью метода Workbook.Worksheets.Add().
  • Запишите данные в определенную ячейку через свойство Worksheet.Range.Value.
  • Импортируйте данные из DataTable на лист с помощью метода Worksheet.InsertDataTable().
  • Сохраните книгу в документ Excel, используя метод Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Xls;
    using System.Data;
    
    namespace CreateExcelSpreadsheet
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove default worksheets
                wb.Worksheets.Clear();
    
                //Add a worksheet and name it "Employee"
                Worksheet sheet = wb.Worksheets.Add("Employee");
    
                //Merge the cells between A1 and G1
                sheet.Range["A1:G1"].Merge();
    
                //Write data to A1 and apply formatting to it
                sheet.Range["A1"].Value = "Basic Information of Employees of Huanyu Automobile Company";
                sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center;
                sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center;
                sheet.Range["A1"].Style.Font.IsBold = true;
                sheet.Range["A1"].Style.Font.Size = 13F;
    
                //Set row height of the first row
                sheet.Rows[0].RowHeight = 30F;
    
                //Create a DataTable
                DataTable dt = new DataTable();
                dt.Columns.Add("Name");
                dt.Columns.Add("Gender");
                dt.Columns.Add("Birth Date");
                dt.Columns.Add("Educational Background");
                dt.Columns.Add("Contact Number");
                dt.Columns.Add("Position");
                dt.Columns.Add("ID");
                dt.Rows.Add("Allen", "Male", "1990-02-10", "Bachelor", "24756854", "Mechanic", "0021");
                dt.Rows.Add("Patrick", "Male", "1985-06-08", "Master", "59863247", "Mechanic", "0022");
                dt.Rows.Add("Jenna", "Female", "1989-11-25", "Bachelor", "79540352", "Sales", "0023");
                dt.Rows.Add("Tommy", "Male", "1988-04-16", "Master", "52014060", "Mechanic", "0024");
                dt.Rows.Add("Christina", "Female", "1998-01-21", "Bachelor", "35401489", "HR", "0025");
    
                //Import data from DataTable to worksheet
                sheet.InsertDataTable(dt, true, 2, 1, true);
    
                //Set row height of a range
                sheet.Range["A2:G7"].RowHeight = 15F;
    
                //Set column width
                sheet.Range["A2:G7"].Columns[2].ColumnWidth = 15F;
                sheet.Range["A2:G7"].Columns[3].ColumnWidth = 21F;
                sheet.Range["A2:G7"].Columns[4].ColumnWidth = 15F;
    
                //Set border style of a range
                sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium);
                sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin);
                sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium);
                sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black;
    
                //Save to a .xlsx file
                wb.SaveToFile("NewSpreadsheet.xlsx", FileFormat.Version2016);
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Чтение данных рабочего листа в C#, VB.NET

Свойство Worksheet.Range.Value возвращает числовое значение или текстовое значение ячейки в виде строки. Чтобы получить данные всего листа или диапазона ячеек, пройдитесь по ячейкам внутри него. Ниже приведены шаги по получению данных листа с помощью Spire.XLS for .NET.

  • Создайте объект Workbook.
  • Загрузите документ Excel с помощью метода Workbook.LoadFromFile().
  • Получите конкретный лист через свойство Workbook.Worksheets[index].
  • Получите диапазон ячеек, содержащий данные, с помощью свойства Worksheet.AllocatedRange.
  • Перебирайте строки и столбцы, чтобы получить ячейки в диапазоне, и возвращайте значение каждой ячейки через свойство CellRange.Value.
  • C#
  • VB.NET
using Spire.Xls;
    
    namespace ReadExcelData
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Load an existing Excel file
                wb.LoadFromFile(@"C:\Users\Administrator\Desktop\NewSpreadsheet.xlsx");
    
                //Get the first worksheet
                Worksheet sheet = wb.Worksheets[0];
    
                //Get the cell range containing data
                CellRange locatedRange = sheet.AllocatedRange;
    
                //Iterate through the rows
                for (int i = 0;i < locatedRange.Rows.Length;i++)
                {
                    //Iterate through the columns
                    for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
                    {
                        //Get data of a specific cell
                        Console.Write(locatedRange[i + 1, j + 1].Value + "  ");
    
                    }
                    Console.WriteLine();
                }
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Обновление документа Excel на C#, VB.NET

Чтобы изменить значение определенной ячейки, просто переназначьте ей значение через свойство Worksheet.Range.Value. Ниже приведены подробные шаги.

  • Создайте объект Workbook.
  • Загрузите документ Excel с помощью метода Workbook.LoadFromFile().
  • Получите конкретный лист через свойство Workbook.Worksheets[index].
  • Измените значение определенной ячейки с помощью свойства Worksheet.Range.Value.
  • Сохраните книгу в файл Excel, используя метод Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Xls;
    
    namespace UpdateCellValue
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Load an existing Excel file
                wb.LoadFromFile(@"C:\Users\Administrator\Desktop\NewSpreadsheet.xlsx");
    
                //Get the first worksheet
                Worksheet sheet = wb.Worksheets[0];
    
                //Change the value of a specific cell
                sheet.Range["A1"].Value = "Updated Value";
    
                //Save to file
                wb.SaveToFile("Updated.xlsx", ExcelVersion.Version2016);
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Подать заявку на временную лицензию

Если вы хотите удалить сообщение об оценке из сгенерированных документов или избавиться от ограничений функции, пожалуйста запросите 30-дневную пробную лицензию для себя.

Смотрите также