Xuất dữ liệu sang excel

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách xuất dữ liệu sang Excel trong C# và VB.NET từ nhiều nguồn dữ liệu khác nhau như mảng, tập hợp các đối tượng tùy chỉnh, DataTable, DataView, DataGrid, GridView, HTML, JSON và CSV.

Xuất dữ liệu sang Excel bằng C# bằng API Aspose.Cells

Aspose.Cells for .NET là API thao tác bảng tính mạnh mẽ cho phép bạn tạo, chỉnh sửa hoặc chuyển đổi tệp Excel trong các ứng dụng .NET. Các phương pháp dễ sử dụng của API cho phép bạn thực hiện các tính năng tự động hóa Excel một cách liền mạch chỉ bằng một vài dòng mã. NuGet là cách dễ nhất để tải xuống và cài đặt Aspose.Cells API for .NET. Mở cửa sổ Quản lý gói NuGet và nhập “Aspose.Cells" vào hộp văn bản tìm kiếm để tìm gói Aspose.Cells .NET. Cuối cùng, nhấp vào nút Cài đặt để cài đặt phiên bản mới nhất của gói.

Xuất mảng C# sang Excel - Hướng dẫn ngắn

Chúng ta có thể xuất một mảng (một chiều hoặc hai chiều) thuộc loại tham chiếu hoặc loại giá trị sang tài liệu Excel. Chúng tôi sử dụng phương thức ImportArray của bộ sưu tập Ô để xuất dữ liệu sang bảng tính từ một mảng. Các phiên bản quá tải của phương thức ImportArray như sau.

TênMô tả
ImportArray(Double[], Int32, Int32, Boolean)Xuất một mảng double vào một bảng tính.
ImportArray(Int32[], Int32, Int32, Boolean)Xuất một mảng số nguyên vào một trang tính.
ImportArray(String[], Int32, Int32, Boolean)Xuất một mảng chuỗi vào một bảng tính.
ImportArray(Double[,], Int32, Int32)Xuất một mảng hai chiều double vào một trang tính.
ImportArray(Int32[,], Int32, Int32)Xuất mảng hai chiều của một số nguyên vào một trang tính.
ImportArray(String[,], Int32, Int32)Xuất mảng chuỗi hai chiều vào một trang tính.

Một tình trạng quá tải điển hình có các tham số sau:

  • Mảng, đối tượng mảng mà bạn đang xuất nội dung từ đó.
  • Số hàng, số hàng của ô đầu tiên (dựa trên số 0) mà dữ liệu sẽ được xuất sang.
  • Số cột, số cột của ô đầu tiên (dựa trên số 0) mà dữ liệu sẽ được xuất sang.
  • Là giá trị dọc, một giá trị Boolean chỉ định xuất dữ liệu theo chiều dọc hay chiều ngang.

Sau đây là các bước để xuất một mảng sang tệp Excel trong C#.

  1. Tạo một đối tượng Sổ làm việc. Lớp Workbook đại diện cho một tệp Microsoft Excel.
  2. Nhận một tài liệu tham khảo đến bảng tính mong muốn. Lớp Workbook chứa bộ sưu tập Worksheets cho phép truy cập vào từng trang tính trong tệp Excel.
  3. Gọi phương thức ImportArray của bộ sưu tập Cells để xuất một mảng sang trang tính ở hàng và cột được chỉ định. Lớp Bảng tính cung cấp bộ sưu tập Ô.
  4. Lưu tệp Excel bằng phương thức Workbook.Save(string).

Mẫu mã sau đây cho biết cách xuất một mảng Chuỗi sang tệp Excel trong C#.

// Instantiating a Workbook object
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Creating an array containing names as string values
string[] names = new string[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// Exporting the array of names to first row and first column vertically
worksheet.Cells.ImportArray(names, 0, 0, true);

// Saving the Excel file
workbook.Save("StringsArray.xlsx");
Xuất mảng chuỗi sang Excel

Xuất một mảng dữ liệu sang Excel

Tương tự, chúng ta có thể xuất mảng hai chiều sang tệp Excel. Mẫu mã sau đây cho biết cách xuất mảng hai chiều sang tệp Excel trong C#.

// Creating a two-dimensional array of integers
int[,] array2D = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

// Exporting a two-dimensional array at the first row and first column of the worksheet
worksheet.Cells.ImportArray(array2D, 0, 0);

C# Xuất danh sách mảng sang Excel

Để xuất dữ liệu từ một ArrayList sang bảng tính, hãy gọi phương thức ImportArrayList của bộ sưu tập Cells. Phương thức ImportArrayList có các tham số sau:

  • Danh sách mảng đại diện cho đối tượng ArrayList mà bạn đang xuất.
  • Số hàng đại diện cho số hàng của ô đầu tiên mà dữ liệu sẽ được xuất sang.
  • Số cột biểu thị số cột của ô đầu tiên mà dữ liệu sẽ được xuất sang.
  • Dọc là một giá trị Boolean chỉ định xuất dữ liệu theo chiều dọc hay chiều ngang.

Mẫu mã sau đây cho biết cách xuất ArrayList sang tệp Excel trong C#.

// Instantiating a Workbook object
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Instantiating an ArrayList object
ArrayList list = new ArrayList();

// Add few names to the list as string values
list.Add("Laurence Chen");
list.Add("Roman Korchagin");
list.Add("Kyle Huang");
list.Add("Tommy Wang");

// Exporting the contents of ArrayList vertically at the first row and first column of the worksheet. 
worksheet.Cells.ImportArrayList(list, 0, 0, true);

// Saving the Excel file
workbook.Save("ArrayListExport.xlsx");

C# Xuất bộ sưu tập các đối tượng tùy chỉnh sang Excel

Để xuất dữ liệu từ một tập hợp các đối tượng tùy chỉnh sang một trang tính, chúng tôi sử dụng phương thức ImportCustomObjects. Có hai phiên bản quá tải của phương pháp này.

  1. ImportCustomObjects(danh sách ICollection, String[] propertyNames, Boolean isPropertyNameShown, Int32 firstRow, Int32 firstColumn, Int32 rowNumber, phần chèn Boolean, Chuỗi dateFormatString, Boolean ConvertStringToNumber)
  2. ImportCustomObjects(danh sách ICollection, Int32 firstRow, Int32 firstColumn, tùy chọn ImportTableOptions)

Chúng ta sẽ khám phá từng phương thức nạp chồng một. Mô tả các tham số của phương thức nạp chồng đầu tiên được đưa ra dưới đây:

  • list Bộ sưu tập các đối tượng tùy chỉnh.
  • propertyNames Tên thuộc tính của đối tượng cần xuất. Nếu nó là null, tất cả thuộc tính sẽ được xuất.
  • isPropertyNameShown Cho biết tên thuộc tính có được xuất sang hàng đầu tiên hay không.
  • firstRow Số hàng của ô đầu tiên cần xuất sang.
  • firstColumn Số cột của ô đầu tiên cần xuất sang.
  • rowNumber Số lượng đối tượng được xuất.
  • InsertRows Cho biết liệu các hàng bổ sung có được thêm vào để vừa với dữ liệu hay không.
  • dateFormatString Chuỗi định dạng ngày cho ô.
  • ConvertStringToNumber Cho biết liệu phương thức này có cố gắng chuyển đổi chuỗi thành số hay không.

Trong ví dụ sau, chúng tôi đang xuất danh sách các đối tượng Person sang tài liệu Excel trong C#. Xin lưu ý rằng chúng tôi chỉ xuất hai thuộc tính (Tên và Tuổi) của đối tượng Person.

// Instantiate a new Workbook
Workbook book = new Workbook();
// Obtaining the reference of the worksheet
Worksheet sheet = book.Worksheets[0];

// Define List
List<Person> list = new List<Person>();

list.Add(new Person("Mike", 25, "Software Engineer"));
list.Add(new Person("Steve", 30, "Doctor"));
list.Add(new Person("Billy", 35, "Teacher"));

// We pick only Name and Age columns, not all, to export to the worksheet         
sheet.Cells.ImportCustomObjects((System.Collections.ICollection)list,
    new string[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.Count, // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Save the Excel file
book.Save("ExportedCustomObjects.xlsx");
       
public class Person
{
    public string Name { get; set; }

    public int Age { get; set; }

    public string Occupation { get; set; }

    public Person(string name, int age, string occupation)
    {
        Age = age;
        Name = name;
        Occupation = occupation;
    }
}
Xuất danh sách đối tượng sang Excel

Xuất danh sách đối tượng Person sang Excel

Bây giờ chúng ta khám phá phương thức nạp chồng thứ hai của ImportCustomObjects. Mô tả các tham số của phương pháp được đưa ra dưới đây:

  • list Danh sách các đối tượng tùy chỉnh.
  • firstRow Số hàng của ô đầu tiên cần xuất sang.
  • firstColumn Số cột của ô đầu tiên cần xuất sang.
  • đối tượng tùy chọn ImportTableOptions.

Tham số ImportTableOptions cung cấp một số tùy chọn để xuất dữ liệu vào các ô. Một số trong số chúng được đưa ra dưới đây:

  • CheckMergedCells Tài liệu Excel có chứa các ô được hợp nhất không.
  • ColumnIndexes Mảng số nguyên của chỉ mục cột (dựa trên 0) để xuất từ nguồn dữ liệu. null có nghĩa là tất cả các cột sẽ được xuất.
  • ConvertGridStyle Cho biết có áp dụng kiểu của chế độ xem lưới cho các ô hay không.
  • ConvertNumericData Một giá trị boolean cho biết liệu giá trị chuỗi có nên được chuyển đổi thành giá trị số hay giá trị ngày hay không.
  • DateFormat Lấy hoặc đặt chuỗi định dạng ngày cho các ô có giá trị DateTime được xuất.
  • Giá trị mặc định Giá trị mặc định cho ô trong bảng là null.
  • InsertRows Cho biết liệu có nên thêm hàng mới để xuất bản ghi dữ liệu hay không.
  • IsFieldNameShown Cho biết liệu tên trường có nên được xuất hay không.
  • IsFormulas Cho biết dữ liệu có phải là công thức hay không.
  • IsHtmlString Cho biết dữ liệu có chứa thẻ HTML hay không. Nếu chúng tôi đặt giá trị thành true, định dạng HTML sẽ vẫn được giữ nguyên trong khi xuất dữ liệu sang tài liệu Excel.
  • NumberFormats Lấy hoặc đặt định dạng số
  • ShiftFirstRowDown Cho biết liệu hàng đầu tiên có nên được dịch chuyển xuống khi chèn hàng hay không.
  • TotalColumns Lấy hoặc đặt tổng số cột để xuất từ nguồn dữ liệu. -1 có nghĩa là tất cả các cột của nguồn dữ liệu nhất định.
  • TotalRows Lấy hoặc đặt tổng số hàng để xuất từ nguồn dữ liệu. -1 có nghĩa là tất cả các hàng của nguồn dữ liệu nhất định.

Trong ví dụ sau, chúng tôi đang xuất dữ liệu từ một tập hợp các đối tượng sang một trang tính chứa các ô đã hợp nhất. Chúng tôi đang đặt giá trị của thuộc tính ImportTableOptions.CheckMergedCells thành true vì tài liệu Excel chứa các ô đã hợp nhất.

// Opening an existing Workbook.
Workbook workbook = new Workbook("SampleMergedTemplate.xlsx");
List<Product> productList = new List<Product>();

// Creating a collection of Products
for (int i = 0; i < 3; i++)
{
    Product product = new Product
    {
        ProductId = i,
        ProductName = "Test Product - " + i
    };
    productList.Add(product);
}

ImportTableOptions tableOptions = new ImportTableOptions();
// Set CheckMergedCells property to true
tableOptions.CheckMergedCells = true;
tableOptions.IsFieldNameShown = false;

//Export data to excel template (in second row, first column) 
workbook.Worksheets[0].Cells.ImportCustomObjects((ICollection)productList, 1, 0, tableOptions);
workbook.Save("SampleMergedTemplate_out.xlsx", SaveFormat.Xlsx);

public class Product
{
    public int ProductId { get; set; }

    public string ProductName { get; set; }
}
Xuất dữ liệu từ một tập hợp các đối tượng sang một trang tính có chứa các ô đã hợp nhất

Xuất dữ liệu sang tài liệu Excel chứa các ô đã hợp nhất

C# Sao chép hàng và cột từ tệp Excel này sang tệp Excel khác

Chúng ta có thể lập trình sao chép các hàng và cột từ tài liệu Excel này sang tài liệu Excel khác. Khi một hàng (hoặc cột) được sao chép, dữ liệu chứa trong đó, bao gồm các công thức – với các tham chiếu được cập nhật – và các giá trị, nhận xét, định dạng, ô ẩn, hình ảnh và các đối tượng vẽ khác cũng được sao chép. Chúng ta cũng có thể sao chép các hàng và cột trong cùng một trang tính hoặc trên các trang tính khác nhau trong tài liệu Excel. Aspose.Cells cung cấp các phương thức sau để sao chép hàng và cột.

Mã ví dụ sau đây cho biết cách sao chép các hàng từ tài liệu Excel này sang tài liệu Excel khác trong C#.

// Open the source excel file.
Workbook srcWorkbook = new Workbook("Source_Workbook.xlsx");

// Instantiate the destination excel file.
Workbook destWorkbook = new Workbook();

// Get the first worksheet of the source workbook.
Worksheet srcWorksheet = srcWorkbook.Worksheets[0];

// Get the first worksheet of the destination workbook.
Worksheet desWorksheet = destWorkbook.Worksheets[0];

// Copy all the rows of the first worksheet of source Workbook to
// the first worksheet of destination Workbook.
desWorksheet.Cells.CopyRows(srcWorksheet.Cells, 0, 0, srcWorksheet.Cells.MaxDisplayRange.RowCount);

// Save the excel file.
destWorkbook.Save("Destination_Workbook.xlsx");

Mã ví dụ sau đây cho biết cách sao chép các hàng cụ thể của tài liệu Excel này sang tài liệu Excel khác.

// Open the source excel file.
Workbook srcWorkbook = new Workbook("Source_Workbook.xlsx");

// Instantiate the destination excel file.
Workbook destWorkbook = new Workbook();

// Get the first worksheet of the source workbook.
Worksheet srcWorksheet = srcWorkbook.Worksheets[0];

// Get the first worksheet of the destination workbook.
Worksheet desWorksheet = destWorkbook.Worksheets[0];

// Copy the second row of the source Workbook to the first row of destination Workbook.
desWorksheet.Cells.CopyRow(srcWorksheet.Cells, 1, 0);

// Copy the fourth row of the source Workbook to the second row of destination Workbook.
desWorksheet.Cells.CopyRow(srcWorksheet.Cells, 3, 1);

// Save the excel file.
destWorkbook.Save("Destination_Workbook.xlsx");
Sao chép dữ liệu hàng từ tài liệu Excel này sang tài liệu Excel khác

Tương tự, chúng ta có thể sao chép dữ liệu của các cột từ tài liệu Microsoft Excel này sang tài liệu Microsoft Excel khác bằng phương thức CopyColumn hoặc CopyColumns.

C# Xuất bảng dữ liệu sang Excel

Dữ liệu từ các đối tượng ADO.NET như DataTable, DataColumnDataView có thể được xuất sang bảng tính Excel. Để xuất dữ liệu từ DataTable, chúng tôi gọi phương thức ImportData của bộ sưu tập Ô. Có nhiều phiên bản quá tải của phương thức ImportData nhưng chúng tôi sử dụng như sau:

public int ImportData(
	DataTable table,
	int firstRow,
	int firstColumn,
	ImportTableOptions options
)

Mô tả các tham số được đưa ra dưới đây:

  • đối tượng bảng DataTable sẽ được xuất.
  • firstRow Số hàng của ô đầu tiên cần xuất sang.
  • firstColumn Số cột của ô đầu tiên cần xuất sang.
  • đối tượng optionsType ImportTableOptions.

Trong mẫu mã sau đây, chúng ta đang tạo một đối tượng DataTable có ba cột và hai hàng. Và xuất nó sang một bảng tính Excel.

// Instantiating a Workbook object            
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Instantiating a "Products" DataTable object
DataTable dataTable = new DataTable("Products");

// Adding columns to the DataTable object
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

// Creating an empty row in the DataTable object
DataRow dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Creating another empty row in the DataTable object
dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Setting IsFieldNameShown property to true will add column names // of the DataTable to the worksheet as a header row
ImportTableOptions tableOptions = new ImportTableOptions();
tableOptions.IsFieldNameShown = true;

// Exporting the contents of DataTable at the first row and first column.
worksheet.Cells.ImportData(dataTable, 0, 0, tableOptions);

// Saving the Excel file
workbook.Save("DataTable_Eport.xlsx");
Xuất bảng dữ liệu sang Excel

Xuất bảng dữ liệu sang Excel

Xuất dữ liệu của các cột dữ liệu chọn lọc sang Excel trong C#

Chúng ta có thể xuất các DataColumn có chọn lọc của DataTable hoặc DataView sang tài liệu Excel. Như đã thảo luận trước đó, phương thức ImportData chấp nhận đối số thuộc loại ImportTableOptions. Lớp ImportTableOptions có thuộc tính ColumnIndexes chấp nhận một mảng các chỉ mục cột (dựa trên 0) mà chúng tôi muốn xuất. Trong mẫu mã sau đây, chúng tôi chỉ xuất hai DataColumn của một DataTable sang một Trang tính Excel.

// Instantiating a "Products" DataTable object
DataTable dataTable = new DataTable("Products");

// Adding columns to the DataTable object
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

// Creating an empty row in the DataTable object
DataRow dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Creating another empty row in the DataTable object
dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Instantiate a new Workbook
Workbook book = new Workbook();

Worksheet sheet = book.Worksheets[0];

// Create export options
ImportTableOptions importOptions = new ImportTableOptions();
// Sets the columns (0-based) to export from data source.
// null means all columns should be exported.
importOptions.ColumnIndexes = new int[] { 0, 1 };
importOptions.IsFieldNameShown = true;

// Exporting the values of 1st and 2nd columns of the data table
sheet.Cells.ImportData(dataTable, 0, 0, importOptions);

book.Save("DataColumsExport.xlsx");
Xuất dữ liệu của các cột dữ liệu chọn lọc sang Excel

Kết quả của DataColumns sang Excel

Xuất dữ liệu từ DataView sang Excel trong C#

DataView là chế độ xem trên DataTable có thể được tùy chỉnh để hiển thị một tập hợp con dữ liệu từ DataTable. Chúng tôi sử dụng phiên bản quá tải sau đây của phương thức ImportData để xuất dữ liệu từ DataView sang tài liệu Excel.

public int ImportData(
	DataView dataView,
	int firstRow,
	int firstColumn,
	ImportTableOptions options
)

Chúng tôi biết có hai cách để tạo DataView. Chúng ta có thể sử dụng hàm tạo DataView hoặc có thể tạo tham chiếu đến thuộc tính DefaultView của DataTable. Trong mẫu mã sau đây, chúng tôi đang sử dụng cách sau để tạo DataView.

worksheet.Cells.ImportData(dataTable.DefaultView, 0, 0, options);

Xuất dữ liệu từ DataGrid và GridView sang Excel trong C#

Thư viện Aspose.Cells cho phép chúng tôi xuất dữ liệu từ các điều khiển Microsoft Grid như DataGrid và GridView sang bảng tính Excel. Nó cung cấp phương thức ImportDataGrid để xuất dữ liệu từ DataGrid và phương thức ImportGridView để xuất dữ liệu từ GridView.

Có nhiều phiên bản quá tải của phương thức ImportDataGrid nhưng một phiên bản quá tải thông thường có các tham số sau:

  • dataGrid, đối tượng DataGrid mà chúng tôi đang xuất nội dung từ đó.
  • firstRow, số hàng của ô đầu tiên mà dữ liệu sẽ được xuất sang.
  • firstColumn, số cột của ô đầu tiên mà dữ liệu sẽ được xuất sang.
  • InsertRows, một thuộc tính Boolean cho biết liệu có nên thêm các hàng bổ sung vào trang tính để vừa với dữ liệu hay không.
  • importStyle, một thuộc tính Boolean cho biết có nên xuất kiểu ô hay không.

Ví dụ mã sau đây cho biết cách xuất dữ liệu từ DataGrid sang tệp Excel trong C#.

// Create a DataTable object and set it as the DataSource of the DataGrid.
DataTable dataTable = new DataTable("Products");
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

DataRow dr = dataTable.NewRow();
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;
dataTable.Rows.Add(dr);

dr = dataTable.NewRow();
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;
dataTable.Rows.Add(dr);

// Now take care of DataGrid
DataGrid dg = new DataGrid();
dg.DataSource = dataTable;
dg.DataBind();

// We have a DataGrid object with some data in it.
// Lets export it to an Excel worksheet.

// Creat a new workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

// Exporting the contents of the DataGrid to the worksheet
worksheet.Cells.ImportDataGrid(dg, 0, 0, false);

// Save it as Excel file
workbook.Save("ExportDataGrid.xlsx");

Xuất dữ liệu có định dạng HTML sang Excel trong C#

Aspose.Cells cho phép bạn xuất dữ liệu có định dạng HTML sang bảng tính Excel. API phân tích văn bản có định dạng HTML trong khi xuất dữ liệu và chuyển đổi HTML thành các giá trị ô được định dạng. Trong mã mẫu sau, DataTable chứa văn bản có định dạng HTML và chúng tôi đang xuất văn bản đó sang Tài liệu Excel bằng phương thức ImportData.

// Prepare a DataTable with some HTML formatted values
DataTable dataTable = new DataTable("Products");

dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

DataRow dr = dataTable.NewRow();
dr[0] = 1;
// Make text italicize
dr[1] = "<i>Aniseed</i> Syrup";
dr[2] = 15;
dataTable.Rows.Add(dr);

dr = dataTable.NewRow();
dr[0] = 2;
// Make text bold
dr[1] = "<b>Boston Crab Meat</b>";
dr[2] = 123;
dataTable.Rows.Add(dr);

// Create export options
ImportTableOptions exportOptions = new ImportTableOptions();
exportOptions.IsFieldNameShown = true;
// Set IsHtmlString property to true as the data contains HTML tags. 
exportOptions.IsHtmlString = true;

// Create workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

worksheet.Cells.ImportData(dataTable, 0, 0, exportOptions);

workbook.Save("HTMLFormattedData_Out.xlsx");
Dữ liệu được định dạng HTML vào bảng tính

Đầu ra của dữ liệu đã xuất HTML sang tài liệu Excel

Xuất tệp HTML sang Excel trong C#

Aspose.Cells cho phép chúng tôi xuất tệp HTML sang Excel. Tệp HTML phải có định hướng Microsoft Excel, tức là MS-Excel có thể mở được.

// An HTML file
string filePath = "Book1.html";

// Instantiate LoadOptions specified by the LoadFormat.
HtmlLoadOptions loadOptions = new HtmlLoadOptions(LoadFormat.Html);

// Create a Workbook object and open the HTML file.
Workbook wb = new Workbook(filePath, loadOptions);

// Save the file as Excel Document
wb.Save("Book1_out.xlsx");

Xuất dữ liệu JSON sang Excel trong C#

Đôi khi chúng tôi có nhu cầu xuất Dữ liệu JSON sang tài liệu Excel. Với Aspose.Cells chúng ta có thể dễ dàng thực hiện việc này chỉ với một vài dòng mã. Aspose.Cells cung cấp lớp JsonUtility có phương thức ImportData để xuất dữ liệu JSON sang tài liệu Excel. Phương thức ImportData chấp nhận đối tượng JsonLayoutOptions làm tham số. Lớp JsonLayoutOptions đại diện cho các tùy chọn bố cục JSON và có các thuộc tính sau.

  • ArrayAsTable: Indicates whether the array should be processed as a table.
  • ConvertNumericOrDate: Gets or sets a value that indicates whether the string in JSON is to be converted to numeric or date.
  • DateFormat: Gets and sets the format of the date value.
  • IgnoreArrayTitle: Indicates whether to ignore the title if the property of the object is an array.
  • IgnoreNull: Indicates whether the null value should be ignored.
  • IgnoreObjectTitle: Indicates whether to ignore the title if the property of the object is an object.
  • NumberFormat: Gets and sets the format of the numeric value.
  • TitleStyle: Gets and sets the style of the title.

Trong mã ví dụ sau, chúng tôi đang xuất dữ liệu JSON sang tệp Excel trong C#.

// Instantiating a Workbook object
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

// Read JSON file
string jsonInput = File.ReadAllText("Sample.json");

// Set Styles
CellsFactory factory = new CellsFactory();
Style style = factory.CreateStyle();
style.HorizontalAlignment = TextAlignmentType.Center;
style.Font.Color = System.Drawing.Color.BlueViolet;
style.Font.IsBold = true;

// Set JsonLayoutOptions
JsonLayoutOptions options = new JsonLayoutOptions();
options.TitleStyle = style;
options.ArrayAsTable = true;

// Export JSON Data
JsonUtility.ImportData(jsonInput, worksheet.Cells, 0, 0, options);

// Save Excel file
workbook.Save("ExportingJsonData.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
Dữ liệu JSON vào tài liệu Excel

Xuất dữ liệu JSON sang Excel

Xuất dữ liệu CSV sang Excel trong C#

Tệp các giá trị được phân tách bằng dấu phẩy (CSV) là tệp văn bản được phân cách sử dụng dấu phẩy để phân tách các giá trị. Tệp CSV thường lưu trữ dữ liệu dạng bảng (số và văn bản) ở dạng văn bản thuần túy, trong trường hợp đó mỗi dòng sẽ có cùng số trường.

Mẫu mã sau đây cho thấy cách chúng ta có thể mở tệp CSV và lưu tệp dưới dạng tệp Excel bằng thư viện Aspose.Cells.

// Instantiate LoadOptions with CSV LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// Open CSV file as a Workbook object
Workbook wb = new Workbook("Business-Price.csv", loadOptions);

// Save the file as an Excel Documnt
wb.Save("CSVAsAnExcelDocument.xlsx");
Mở tệp CSV trong Tài liệu bảng tính

CSV sang tài liệu Excel

Phần kết luận

Trong bài đăng này, bạn đã biết cách xuất dữ liệu sang Excel trong C# từ Array, DataTable, DataView, DataGrid và GridView dễ dàng như thế nào. Bạn cũng đã biết cách xuất Dữ liệu HTML, JSON, CSV sang bảng tính Excel. Vui lòng kiểm tra tài liệu để tìm hiểu thêm về những tính năng này và một số tính năng khác mà API Aspose.Cells cung cấp. Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi thông qua Diễn đàn hỗ trợ của chúng tôi.

Xem thêm