W tym artykule pokażemy jak eksportować dane do Excela w C# i VB.NET z różnych źródeł danych takich jak tablica, kolekcja niestandardowych obiektów, DataTable, DataView, DataGrid, GridView, HTML, JSON i CSV.
- Eksportuj tablicę do Excela w C#
- Kopiuj wiersze i kolumny z jednego pliku Excel do innego w C#
- Eksportuj tabelę danych do programu Excel w języku C#
- Eksportuj dane z DataGrid i GridView do Excela w C#
- Eksportuj dane w formacie HTML do Excela w C#
- Eksportuj dane JSON do Excela w C#
- Eksportuj dane CSV do Excela w C#
Eksportuj dane do programu Excel w języku C# za pomocą interfejsu API Aspose.Cells
Aspose.Cells for .NET to potężny interfejs API do manipulacji arkuszami kalkulacyjnymi, który umożliwia tworzenie, edytowanie i konwertowanie plików Excel w aplikacjach .NET. Łatwe w użyciu metody interfejsu API umożliwiają płynne wykonywanie funkcji automatyzacji programu Excel w kilku wierszach kodu. NuGet to najłatwiejszy sposób pobrania i zainstalowania Aspose.Cells API dla .NET. Otwórz okno Zarządzaj pakietami NuGet i wpisz „Aspose.Cells" w polu tekstowym wyszukiwania, aby znaleźć pakiet .NET Aspose.Cells. Na koniec kliknij przycisk Instaluj, aby zainstalować najnowszą wersję pakietu.
Eksportuj tablicę C# do Excela - krótki samouczek
Możemy wyeksportować tablicę (jednowymiarową lub dwuwymiarową) typu referencyjnego lub typu wartościowego do dokumentu Excel. Do eksportowania danych z tablicy do arkusza kalkulacyjnego używamy metody ImportArray z kolekcji Cells. Przeciążone wersje metody ImportArray są następujące.
| Imię | Opis |
| ———– | ———– |
| ImportArray(Double[], Int32, Int32, Boolean) | Eksportuje tablicę double do arkusza. |
| ImportArray(Int32[], Int32, Int32, Boolean) | Eksportuje tablicę liczb całkowitych do arkusza. |
| ImportArray(String[], Int32, Int32, Boolean) | Eksportuje tablicę ciągów do arkusza. |
| ImportArray(Double[,], Int32, Int32) | Eksportuje dwuwymiarową tablicę double do arkusza. |
| ImportArray(Int32[,], Int32, Int32) | Eksportuje dwuwymiarową tablicę liczb całkowitych do arkusza. |
| ImportArray(String[,], Int32, Int32) | Eksportuje dwuwymiarową tablicę ciągów do arkusza. |
Typowe przeciążenie przyjmuje następujące parametry:
- Array, obiekt tablicy, z którego eksportujesz zawartość.
- Numer wiersza: numer wiersza pierwszej komórki (licząc od zera), do której dane zostaną wyeksportowane.
- Numer kolumny: numer kolumny pierwszej komórki (liczony od zera), do której dane zostaną wyeksportowane.
- Jest pionowy, wartość logiczna określająca, czy eksportować dane w pionie, czy w poziomie.
Poniżej przedstawiono kroki, aby wyeksportować tablicę do pliku Excel w języku C#.
- Utwórz obiekt Skoroszyt. Klasa Workbook reprezentuje plik Microsoft Excel.
- Uzyskaj odniesienie do żądanego arkusza. Klasa Workbook zawiera kolekcję Worksheets, która umożliwia dostęp do każdego arkusza w pliku Excel.
- Wywołaj metodę ImportArray kolekcji Cells, aby wyeksportować tablicę do arkusza w określonym wierszu i kolumnie. Klasa Worksheet udostępnia kolekcję Cells.
- Zapisz plik Excel, korzystając z metody Workbook.Save(string).
Poniższy przykładowy kod pokazuje, jak wyeksportować tablicę String do pliku programu Excel w języku 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");
Podobnie możemy wyeksportować tablicę dwuwymiarową do pliku Excel. Poniższy przykładowy kod pokazuje, jak wyeksportować tablicę dwuwymiarową do pliku programu Excel w języku 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# Eksportuj ArrayList do Excela
Aby wyeksportować dane z listy ArrayList do arkusza, wywołaj metodę ImportArrayList kolekcji Cells. Metoda ImportArrayList przyjmuje następujące parametry:
- Lista tablic reprezentuje obiekt ArrayList, który eksportujesz.
- Numer wiersza reprezentuje numer wiersza pierwszej komórki, do której dane zostaną wyeksportowane.
- Numer kolumny reprezentuje numer kolumny pierwszej komórki, do której dane zostaną wyeksportowane.
- Czy pionowo Wartość logiczna określająca, czy eksportować dane w pionie czy w poziomie.
Poniższy przykładowy kod pokazuje, jak wyeksportować ArrayList do pliku Excel w języku 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# Eksportuj kolekcję niestandardowych obiektów do programu Excel
Aby wyeksportować dane ze zbioru obiektów niestandardowych do arkusza, używamy metody ImportCustomObjects. Istnieją dwie przeciążone wersje tej metody.
- ImportCustomObjects(ICollection lista, String[] propertyNames, Boolean isPropertyNameShown, Int32 FirstRow, Int32 FirstColumn, Int32 rowNumber, Boolean insertions, String dateFormatString, Boolean ConvertStringToNumber)
- ImportCustomObjects (lista ICollection, Int32 FirstRow, Int32 FirstColumn, opcje ImportTableOptions)
Przyjrzymy się po kolei każdej przeciążonej metodzie. Poniżej znajduje się opis parametrów pierwszej przeciążonej metody:
- list Kolekcja obiektów niestandardowych.
- propertyNames Nazwy właściwości obiektu do wyeksportowania. Jeśli ma wartość null, wszystkie właściwości zostaną wyeksportowane.
- isPropertyNameShown Wskazuje, czy nazwy właściwości zostaną wyeksportowane do pierwszego wiersza.
- FirstRow Numer wiersza pierwszej komórki, do której ma zostać wyeksportowany.
- FirstColumn Numer kolumny pierwszej komórki, do której ma zostać wyeksportowany.
- rowNumber Liczba obiektów do wyeksportowania.
- wstawkaRows Wskazuje, czy dodano dodatkowe wiersze w celu dopasowania danych.
- dateFormatString Ciąg formatu daty dla komórek.
- konwertujStringToNumber Wskazuje, czy ta metoda będzie próbowała przekonwertować ciąg na liczbę.
W poniższym przykładzie eksportujemy listę obiektów Person do dokumentu Excel w języku C#. Należy pamiętać, że eksportujemy tylko dwie właściwości (Imię i Wiek) obiektu 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;
}
}
Teraz zbadamy drugą przeciążoną metodę ImportCustomObjects. Poniżej znajduje się opis parametrów metody:
- lista Lista obiektów niestandardowych.
- FirstRow Numer wiersza pierwszej komórki, do której ma zostać wyeksportowany.
- FirstColumn Numer kolumny pierwszej komórki, do której ma zostać wyeksportowany.
- opcje ImportTableOptions obiektu.
Parametr ImportTableOptions udostępnia kilka opcji eksportowania danych do komórek. Niektóre z nich podano poniżej:
- CheckMergedCells Czy dokument Excel zawiera scalone komórki.
- ColumnIndexes Tablica liczb całkowitych indeksów kolumn (opartych na 0) do wyeksportowania ze źródła danych. null oznacza, że wszystkie kolumny powinny zostać wyeksportowane.
- ConvertGridStyle Wskazuje, czy zastosować styl widoku siatki do komórek.
- ConvertNumericData Wartość logiczna wskazująca, czy wartość ciągu powinna zostać przekonwertowana na wartość liczbową czy datę.
- DateFormat Pobiera lub ustawia ciąg formatu daty dla komórek z wyeksportowanymi wartościami DateTime.
- Wartości domyślne Wartość domyślna komórki w tabeli to null.
- InsertRows Wskazuje, czy należy dodać nowe wiersze w celu eksportowania rekordów danych.
- IsFieldNameShown Wskazuje, czy nazwy pól powinny zostać wyeksportowane.
- IsFormulas Wskazuje, czy dane są formułami.
- IsHtmlString Wskazuje, czy dane zawierają znaczniki HTML. Jeśli ustawimy wartość na true, formatowanie HTML pozostanie zachowane podczas eksportu danych do dokumentu Excel.
- NumberFormats Pobiera lub ustawia formaty liczb
- ShiftFirstRowDown Wskazuje, czy pierwszy wiersz powinien zostać przesunięty w dół podczas wstawiania wierszy.
- TotalColumns Pobiera lub ustawia całkowitą liczbę kolumn do wyeksportowania ze źródła danych. -1 oznacza wszystkie kolumny danego źródła danych.
- TotalRows Pobiera lub ustawia całkowitą liczbę wierszy do wyeksportowania ze źródła danych. -1 oznacza wszystkie wiersze danego źródła danych.
W poniższym przykładzie eksportujemy dane ze zbioru obiektów do arkusza zawierającego scalone komórki. Ustawiamy wartość właściwości ImportTableOptions.CheckMergedCells na true, ponieważ dokument Excel zawiera scalone komórki.
// 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; }
}
C# kopiuje wiersze i kolumny z jednego pliku Excel do innego
Możemy programowo kopiować wiersze i kolumny z jednego dokumentu Excel do drugiego. Podczas kopiowania wiersza (lub kolumny) kopiowane są także zawarte w nim dane, w tym formuły – ze zaktualizowanymi odniesieniami – oraz wartości, komentarze, formatowanie, ukryte komórki, obrazy i inne obiekty rysunkowe. Możemy także kopiować wiersze i kolumny w tym samym arkuszu lub w różnych arkuszach w dokumencie Excel. Aspose.Cells udostępnia następujące metody kopiowania wierszy i kolumn.
- CopyRow(Komórki sourceCells, int sourceRowIndex, int targetRowIndex) Copies data of a single row.
- CopyRows(Komórki sourceCells, int sourceRowIndex, int targetRowIndex, int rowNumber) Copies data of multiple rows.
- CopyColumn(Komórki sourceCells, int sourceColumnIndex, int targetColumnIndex) Copies data of a single column.
- CopyColumns(Komórki sourceCells, int sourceColumnIndex, int targetColumnIndex, int numer kolumny) Copies data of multiple columns.
Poniższy przykładowy kod pokazuje, jak skopiować wiersze z jednego dokumentu programu Excel do innego w języku 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");
Poniższy przykładowy kod pokazuje, jak skopiować określone wiersze jednego dokumentu programu Excel do innego w języku 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");
W podobny sposób możemy kopiować dane kolumn z jednego dokumentu Microsoft Excel do drugiego, używając metody CopyColumn lub CopyColumns.
C# Eksportuj tabelę danych do programu Excel
Dane z obiektów ADO.NET, takich jak DataTable, DataColumn i DataView można eksportować do arkuszy programu Excel. Aby wyeksportować dane z tabeli DataTable, wywołujemy metodę ImportData zbierania komórek. Istnieje wiele przeciążonych wersji metody ImportData, ale my używamy następujących:
public int ImportData(
DataTable table,
int firstRow,
int firstColumn,
ImportTableOptions options
)
Opis parametrów znajduje się poniżej:
- table DataTable do wyeksportowania.
- FirstRow Numer wiersza pierwszej komórki, do której ma zostać wyeksportowany.
- FirstColumn Numer kolumny pierwszej komórki, do której ma zostać wyeksportowany.
- OptionsType ImportTableOptions obiektu.
W poniższym przykładzie kodu C# tworzymy obiekt DataTable, który ma trzy kolumny i dwa wiersze. I eksportowanie go do arkusza programu 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");
Eksportuj dane wybranych kolumn danych do programu Excel w języku C#
Możemy wyeksportować wybrane kolumny DataTable lub DataView do dokumentu Excel. Jak wspomniano wcześniej, metoda ImportData przyjmuje argument typu ImportTableOptions. Klasa ImportTableOptions posiada właściwość ColumnIndexes, która akceptuje tablicę indeksów kolumn (liczonych od zera), które chcemy wyeksportować. W poniższym przykładzie kodu eksportujemy tylko dwie kolumny danych tabeli DataTable do arkusza programu Excel w języku C#.
// 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");
Eksportuj dane z DataView do Excela w C#
DataView to widok na DataTable, który można dostosować tak, aby prezentował podzbiór danych z DataTable. Do eksportowania danych z DataView do dokumentu Excel używamy następującej przeciążonej wersji metody ImportData.
public int ImportData(
DataView dataView,
int firstRow,
int firstColumn,
ImportTableOptions options
)
Wiemy, że istnieją dwa sposoby utworzenia DataView. Możemy użyć konstruktora DataView lub utworzyć odwołanie do właściwości DefaultView tabeli DataTable. W poniższym przykładzie kodu używamy późniejszego sposobu tworzenia DataView.
worksheet.Cells.ImportData(dataTable.DefaultView, 0, 0, options);
Eksportuj dane z DataGrid i GridView do Excela w C#
Biblioteka Aspose.Cells pozwala nam eksportować dane z kontrolek Microsoft Grid, takich jak DataGrid i GridView, do arkusza programu Excel w języku C#. Zapewnia metodę ImportDataGrid do eksportowania danych z DataGrid i metodę ImportGridView do eksportowania danych z GridView.
Istnieje wiele przeciążonych wersji metody ImportDataGrid, ale typowe przeciążenie przyjmuje następujące parametry:
- dataGrid, obiekt DataGrid, z którego eksportujemy zawartość.
- FirstRow, numer wiersza pierwszej komórki, do której dane zostaną wyeksportowane.
- FirstColumn, numer kolumny pierwszej komórki, do której dane zostaną wyeksportowane.
- wstawRows, właściwość logiczna wskazująca, czy do arkusza należy dodać dodatkowe wiersze, aby dopasować je do danych.
- importStyle, właściwość logiczna wskazująca, czy styl komórki powinien zostać wyeksportowany.
Poniższy przykład kodu pokazuje, jak eksportować dane z DataGrid do pliku Excel w języku 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");
Eksportuj dane w formacie HTML do Excela w C#
Aspose.Cells umożliwia eksport danych w formacie HTML do arkusza programu Excel. Interfejs API analizuje tekst w formacie HTML podczas eksportowania danych i konwertuje kod HTML na sformatowane wartości komórek. W poniższym przykładowym kodzie DataTable zawiera tekst w formacie HTML, który eksportujemy do dokumentu Excel przy użyciu metody 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");
Eksportuj plik HTML do Excela w C#
Aspose.Cells pozwala nam wyeksportować plik HTML do Excela. Plik HTML powinien być zorientowany na Microsoft Excel, tzn. MS-Excel powinien móc go otworzyć.
// 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");
Eksportuj dane JSON do Excela w C#
Czasami mamy potrzebę wyeksportowania danych JSON do dokumentu Excel. Dzięki Aspose.Cells możemy to łatwo zrobić za pomocą kilku linijek kodu. Aspose.Cells udostępnia klasę JsonUtility, która zawiera metodę ImportData służącą do eksportowania danych JSON do dokumentu Excel. Metoda ImportData akceptuje jako parametr obiekt JsonLayoutOptions. Klasa JsonLayoutOptions reprezentuje opcje układu JSON i ma następujące właściwości.
- 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.
W poniższym przykładowym kodzie eksportujemy dane JSON do pliku Excel w języku 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"
}
}
}
}
Eksportuj dane CSV do Excela w C#
Plik wartości rozdzielanych przecinkami (CSV) to plik tekstowy rozdzielany, w którym wartości oddzielane są przecinkiem. Plik CSV zazwyczaj przechowuje dane tabelaryczne (liczby i tekst) w postaci zwykłego tekstu, w którym to przypadku każda linia będzie miała tę samą liczbę pól.
Poniższy przykładowy kod pokazuje, jak możemy otworzyć plik CSV i zapisać go jako plik Excel przy użyciu biblioteki 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");
Wniosek
W tym poście widziałeś, jak łatwo możesz eksportować dane do Excela w C# z Array, DataTable, DataView, DataGrid i GridView. Widziałeś także, jak eksportować dane HTML, JSON, CSV do arkusza Excel. Sprawdź dokumentację, aby dowiedzieć się więcej o tych i kilku innych funkcjach oferowanych przez Aspose.Cells API. Jeśli masz jakiekolwiek pytania, skontaktuj się z nami za pośrednictwem naszego Forum wsparcia.