ในบทความนี้ เราจะแสดงวิธีการส่งออกข้อมูลไปยัง Excel ใน C# และ VB.NET จากแหล่งข้อมูลต่างๆ เช่น อาร์เรย์ คอลเลกชันของออบเจ็กต์แบบกำหนดเอง DataTable, DataView, DataGrid, GridView, HTML, JSON และ CSV
- ส่งออกอาร์เรย์ไปยัง Excel ใน C#
- คัดลอกแถวและคอลัมน์จากไฟล์ Excel หนึ่งไปยังอีกไฟล์หนึ่ง
- ส่งออก DataTable ไปยัง Excel ใน C#
- ส่งออกข้อมูลจาก DataGrid และ GridView ไปยัง Excel
- ส่งออกข้อมูลที่จัดรูปแบบ HTML ไปยัง Excel
- ส่งออกข้อมูล JSON ไปยัง Excel ใน C#
- ส่งออกข้อมูล CSV ไปยัง Excel ใน C#
ส่งออกข้อมูลไปยัง Excel ใน C# ด้วย Aspose.Cells API
Aspose.Cells for .NET คือ API การจัดการสเปรดชีตอันทรงพลังที่ให้คุณสร้าง แก้ไข หรือแปลงไฟล์ Excel ภายในแอปพลิเคชัน .NET วิธีการที่ใช้งานง่ายของ API ช่วยให้คุณสามารถดำเนินการคุณลักษณะการทำงานอัตโนมัติของ Excel ได้อย่างราบรื่นโดยใช้โค้ดเพียงไม่กี่บรรทัด NuGet เป็นวิธีที่ง่ายที่สุดในการดาวน์โหลดและติดตั้ง Aspose.Cells API สำหรับ .NET เปิดหน้าต่างจัดการแพ็คเกจ NuGet แล้วพิมพ์ “Aspose.Cells" ในกล่องข้อความค้นหาเพื่อค้นหาแพ็คเกจ Aspose.Cells .NET สุดท้ายคลิกปุ่มติดตั้งเพื่อติดตั้งแพ็คเกจเวอร์ชันล่าสุด
C# Export Array ไปยัง Excel - บทช่วยสอนสั้น ๆ
เราสามารถส่งออกอาร์เรย์ (หนึ่งมิติหรือสองมิติ) ของประเภทการอ้างอิงหรือประเภทค่าไปยังเอกสาร Excel เราใช้เมธอด ImportArray ของคอลเลกชัน Cells เพื่อส่งออกข้อมูลไปยังสเปรดชีตจากอาร์เรย์ เวอร์ชันที่โอเวอร์โหลดของเมธอด ImportArray มีดังต่อไปนี้
ชื่อ | คำอธิบาย |
---|---|
ImportArray(Double[], Int32, Int32, บูลีน) | ส่งออกอาร์เรย์สองเท่าลงในเวิร์กชีต |
ImportArray(Int32[], Int32, Int32, บูลีน) | ส่งออกอาร์เรย์ของจำนวนเต็มลงในแผ่นงาน |
ImportArray(สตริง[], Int32, Int32, บูลีน) | ส่งออกอาร์เรย์ของสตริงลงในแผ่นงาน |
ImportArray(Double[,], Int32, Int32) | ส่งออกอาร์เรย์สองมิติของ double ลงในเวิร์กชีต |
ImportArray(Int32[,], Int32, Int32) | ส่งออกอาร์เรย์สองมิติของจำนวนเต็มลงในแผ่นงาน |
ImportArray(String[,], Int32, Int32) | ส่งออกอาร์เรย์สองมิติของสตริงลงในเวิร์กชีต |
การโอเวอร์โหลดทั่วไปจะใช้พารามิเตอร์ต่อไปนี้:
- Array วัตถุอาร์เรย์ที่คุณกำลังส่งออกเนื้อหา
- หมายเลขแถว หมายเลขแถวของเซลล์แรก (แบบศูนย์) ที่จะส่งออกข้อมูลไป
- หมายเลขคอลัมน์ หมายเลขคอลัมน์ของเซลล์แรก (เลขศูนย์) ที่จะส่งออกข้อมูลไป
- เป็นแนวตั้ง ซึ่งเป็นค่าบูลีนที่ระบุว่าจะส่งออกข้อมูลในแนวตั้งหรือแนวนอน
ต่อไปนี้เป็นขั้นตอนในการส่งออกอาร์เรย์ไปยังไฟล์ Excel ใน C#
- สร้างวัตถุ สมุดงาน คลาส สมุดงาน แสดงถึงไฟล์ Microsoft Excel
- รับการอ้างอิงไปยังแผ่นงานที่ต้องการ คลาส สมุดงาน มีคอลเลกชัน แผ่นงาน ที่อนุญาตให้เข้าถึงแต่ละแผ่นงานในไฟล์ Excel
- เรียกเมธอด ImportArray ของคอลเลกชั่น Cells เพื่อส่งออกอาร์เรย์ไปยังเวิร์กชีตที่แถวและคอลัมน์ที่ระบุ คลาส แผ่นงาน มีคอลเลกชัน เซลล์
- บันทึกไฟล์ Excel โดยใช้วิธี Workbook.Save(string)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งออกอาร์เรย์ของ String ไปยังไฟล์ Excel ใน 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");
ในทำนองเดียวกัน เราสามารถส่งออกอาร์เรย์สองมิติไปยังไฟล์ Excel ได้ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งออกอาร์เรย์สองมิติไปยังไฟล์ Excel ใน 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# ส่งออก ArrayList ไปยัง Excel
หากต้องการส่งออกข้อมูลจาก ArrayList ไปยังเวิร์กชีท ให้เรียกใช้เมธอด ImportArrayList ของคอลเลกชัน Cells ImportArrayList วิธีการใช้พารามิเตอร์ต่อไปนี้:
- รายการอาร์เรย์แสดงถึงวัตถุ ArrayList ที่คุณกำลังส่งออก
- หมายเลขแถวหมายถึงหมายเลขแถวของเซลล์แรกที่ข้อมูลจะถูกส่งออกไป
- หมายเลขคอลัมน์แสดงถึงหมายเลขคอลัมน์ของเซลล์แรกที่จะส่งออกข้อมูลไป
- แนวตั้งเป็นค่าบูลีนที่ระบุว่าจะส่งออกข้อมูลในแนวตั้งหรือแนวนอน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งออก ArrayList ไปยังไฟล์ Excel ใน 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# ส่งออกคอลเลกชันของวัตถุที่กำหนดเองไปยัง Excel
ในการส่งออกข้อมูลจากคอลเลกชันของออบเจ็กต์ที่กำหนดเองไปยังเวิร์กชีท เราใช้เมธอด ImportCustomObjects วิธีการนี้มีโอเวอร์โหลดสองเวอร์ชัน
- ImportCustomObjects (รายการ ICollection, สตริง [] propertyNames, บูลีน isPropertyNameShown, Int32 firstRow, Int32 firstColumn, Int32 rowNumber, การแทรกบูลีน, สตริง dateFormatString, บูลีน ConvertStringToNumber)
- ImportCustomObjects (รายการ ICollection, Int32 firstRow, Int32 firstColumn, ตัวเลือก ImportTableOptions)
เราจะสำรวจวิธีการโอเวอร์โหลดแต่ละวิธีทีละวิธี คำอธิบายของพารามิเตอร์ของวิธีโอเวอร์โหลดวิธีแรกมีดังต่อไปนี้:
- รายการคอลเลกชันของออบเจ็กต์แบบกำหนดเอง
- propertyNames ชื่อของคุณสมบัติของออบเจ็กต์ที่จะส่งออก หากเป็นค่าว่าง คุณสมบัติทั้งหมดจะถูกส่งออก
- isPropertyNameShown ระบุว่าชื่อคุณสมบัติจะถูกส่งออกไปยังแถวแรกหรือไม่
- firstRow หมายเลขแถวของเซลล์แรกที่จะส่งออกไป
- firstColumn หมายเลขคอลัมน์ของเซลล์แรกที่จะส่งออกไป
- rowNumber จำนวนออบเจ็กต์ที่จะส่งออก
- insertRows ระบุว่ามีการเพิ่มแถวพิเศษเพื่อให้พอดีกับข้อมูลหรือไม่
- dateFormatString สตริงรูปแบบวันที่สำหรับเซลล์
- ConvertStringToNumber ระบุว่าวิธีนี้จะพยายามแปลงสตริงเป็นตัวเลขหรือไม่
ในตัวอย่างต่อไปนี้ เรากำลังส่งออกรายการวัตถุบุคคลไปยังเอกสาร Excel ในภาษา C# โปรดทราบว่าเรากำลังส่งออกคุณสมบัติเพียงสองรายการ (ชื่อและอายุ) ของวัตถุบุคคล
// 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;
}
}
ตอนนี้เราสำรวจวิธีการโอเวอร์โหลดวิธีที่สองของ ImportCustomObjects คำอธิบายของพารามิเตอร์ของวิธีการได้รับด้านล่าง:
- list รายการของออบเจ็กต์แบบกำหนดเอง
- firstRow หมายเลขแถวของเซลล์แรกที่จะส่งออกไป
- firstColumn หมายเลขคอลัมน์ของเซลล์แรกที่จะส่งออกไป
- ตัวเลือก ImportTableOptions วัตถุ
พารามิเตอร์ ImportTableOptions มีตัวเลือกมากมายสำหรับการส่งออกข้อมูลไปยังเซลล์ บางส่วนได้รับด้านล่าง:
- CheckMergedCells เอกสาร Excel มีเซลล์ที่ผสานหรือไม่
- ColumnIndexes อาร์เรย์จำนวนเต็มของดัชนีคอลัมน์ (แบบ 0) ที่จะส่งออกจากแหล่งข้อมูล null หมายความว่าควรส่งออกคอลัมน์ทั้งหมด
- ConvertGridStyle ระบุว่าจะใช้สไตล์ของมุมมองตารางกับเซลล์หรือไม่
- ConvertNumericData ค่าบูลีนที่ระบุว่าค่าสตริงควรแปลงเป็นค่าตัวเลขหรือวันที่
- DateFormat รับหรือตั้งค่าสตริงรูปแบบวันที่สำหรับเซลล์ที่มีค่า DateTime ที่ส่งออก
- DefaultValues ค่าเริ่มต้นสำหรับเซลล์ในตารางเป็นโมฆะ
- InsertRows ระบุว่าควรเพิ่มแถวใหม่เพื่อส่งออกบันทึกข้อมูลหรือไม่
- IsFieldNameShown ระบุว่าควรส่งออกชื่อฟิลด์หรือไม่
- IsFormulas ระบุว่าข้อมูลเป็นสูตรหรือไม่
- IsHtmlString ระบุว่าข้อมูลมีแท็ก HTML หรือไม่ หากเราตั้งค่าเป็นจริง การจัดรูปแบบ HTML จะยังคงรักษาไว้ในขณะที่ส่งออกข้อมูลไปยังเอกสาร Excel
- NumberFormats รับหรือตั้งค่ารูปแบบตัวเลข
- ShiftFirstRowDown ระบุว่าแถวแรกควรเลื่อนลงเมื่อแทรกแถวหรือไม่
- TotalColumns รับหรือตั้งค่าจำนวนคอลัมน์ทั้งหมดที่จะส่งออกจากแหล่งข้อมูล -1 หมายถึงคอลัมน์ทั้งหมดของแหล่งข้อมูลที่กำหนด
- TotalRows รับหรือตั้งค่าจำนวนแถวทั้งหมดที่จะส่งออกจากแหล่งข้อมูล -1 หมายถึงแถวทั้งหมดของแหล่งข้อมูลที่กำหนด
ในตัวอย่างต่อไปนี้ เรากำลังส่งออกข้อมูลจากคอลเลกชันของออบเจ็กต์ไปยังเวิร์กชีตที่มีเซลล์ที่ผสาน เรากำลังตั้งค่าคุณสมบัติ ImportTableOptions.CheckMergedCells ให้เป็นจริง เนื่องจากเอกสาร Excel มีเซลล์ที่ผสานกัน
// 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# คัดลอกแถวและคอลัมน์จากไฟล์ Excel หนึ่งไปยังอีกไฟล์หนึ่ง
เราสามารถคัดลอกแถวและคอลัมน์จากเอกสาร Excel หนึ่งไปยังอีกเอกสารหนึ่งโดยทางโปรแกรมได้ เมื่อคัดลอกแถว (หรือคอลัมน์) ข้อมูลที่อยู่ในนั้น รวมถึงสูตรที่มีการอ้างอิงที่อัปเดต และค่า ความคิดเห็น การจัดรูปแบบ เซลล์ที่ซ่อน รูปภาพ และวัตถุการวาดภาพอื่นๆ จะถูกคัดลอกด้วย นอกจากนี้เรายังสามารถคัดลอกแถวและคอลัมน์ภายในแผ่นงานเดียวกันหรือข้ามแผ่นงานอื่นในเอกสาร Excel ได้ Aspose.Cells มีวิธีการต่อไปนี้ในการคัดลอกแถวและคอลัมน์
- CopyRow(เซลล์ sourceCells, int sourceRowIndex, int DestinationRowIndex) Copies data of a single row.
- CopyRows(เซลล์ sourceCells, int sourceRowIndex, int DestinationRowIndex, int rowNumber) Copies data of multiple rows.
- CopyColumn(เซลล์ sourceCells, int sourceColumnIndex, int DestinationColumnIndex) Copies data of a single column.
- CopyColumns(เซลล์ sourceCells, int sourceColumnIndex, int DestinationColumnIndex, int columnNumber) Copies data of multiple columns.
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกแถวจากเอกสาร Excel หนึ่งไปยังอีกเอกสารหนึ่งใน 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");
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกแถวเฉพาะของเอกสาร Excel หนึ่งไปยังอีกแถวหนึ่ง
// 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");
ในทำนองเดียวกันเราสามารถคัดลอกข้อมูลของคอลัมน์จากเอกสาร Microsoft Excel หนึ่งไปยังอีกเอกสารหนึ่งได้โดยใช้วิธี CopyColumn หรือ CopyColumns
C# ส่งออก DataTable ไปยัง Excel
ข้อมูลจากออบเจ็กต์ ADO.NET เช่น DataTable, DataColumn และ DataView สามารถส่งออกไปยังแผ่นงาน Excel ได้ ในการส่งออกข้อมูลจาก DataTable เราเรียกเมธอด ImportData ของการรวบรวม Cells มีเมธอด ImportData เวอร์ชันโอเวอร์โหลดหลายเวอร์ชัน แต่เราใช้ดังนี้:
public int ImportData(
DataTable table,
int firstRow,
int firstColumn,
ImportTableOptions options
)
คำอธิบายของพารามิเตอร์ได้รับด้านล่าง:
- ตาราง DataTable วัตถุที่จะส่งออก
- firstRow หมายเลขแถวของเซลล์แรกที่จะส่งออกไป
- firstColumn หมายเลขคอลัมน์ของเซลล์แรกที่จะส่งออกไป
- optionsType ImportTableOptions วัตถุ
ในโค้ดตัวอย่างต่อไปนี้ เรากำลังสร้างวัตถุ DataTable ที่มีสามคอลัมน์และสองแถว และส่งออกไปยังแผ่นงาน 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");
ส่งออกข้อมูลของ Selective DataColumns ไปยัง Excel ใน C#
เราสามารถส่งออก DataColumns แบบเลือกสรรของ DataTable หรือ DataView ไปยังเอกสาร Excel ตามที่กล่าวไว้ก่อนหน้านี้ วิธี ImportData ยอมรับอาร์กิวเมนต์ประเภท ImportTableOptions คลาส ImportTableOptions มีคุณสมบัติ ColumnIndexes ที่ยอมรับอาร์เรย์ของดัชนีคอลัมน์ (แบบเป็นศูนย์) ที่เราต้องการส่งออก ในตัวอย่างโค้ดต่อไปนี้ เรากำลังส่งออก DataColumns ของ DataTable เพียงสองคอลัมน์ไปยังแผ่นงาน 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");
ส่งออกข้อมูลจาก DataView ไปยัง Excel ใน C#
DataView เป็นมุมมองบน DataTable ที่สามารถปรับแต่งให้นำเสนอชุดย่อยของข้อมูลจาก DataTable เราใช้เมธอด ImportData เวอร์ชันโอเวอร์โหลดต่อไปนี้เพื่อส่งออกข้อมูลจาก DataView ไปยังเอกสาร Excel
public int ImportData(
DataView dataView,
int firstRow,
int firstColumn,
ImportTableOptions options
)
เรารู้ว่ามีสองวิธีในการสร้าง DataView เราสามารถใช้ตัวสร้าง DataView หรือเราสามารถสร้างการอ้างอิงไปยังคุณสมบัติ DefaultView ของ DataTable ในตัวอย่างโค้ดต่อไปนี้ เรากำลังใช้วิธีถัดไปในการสร้าง DataView
worksheet.Cells.ImportData(dataTable.DefaultView, 0, 0, options);
ส่งออกข้อมูลจาก DataGrid และ GridView ไปยัง Excel ใน C#
ไลบรารี Aspose.Cells ช่วยให้เราสามารถส่งออกข้อมูลจากตัวควบคุม Microsoft Grid เช่น DataGrid และ GridView ไปยังแผ่นงาน Excel มีวิธีการ ImportDataGrid เพื่อส่งออกข้อมูลจาก DataGrid และวิธี ImportGridView เพื่อส่งออกข้อมูลจาก GridView
มีเมธอด ImportDataGrid เวอร์ชันโอเวอร์โหลดหลายเวอร์ชัน แต่การโอเวอร์โหลดทั่วไปใช้พารามิเตอร์ต่อไปนี้:
- dataGrid วัตถุ DataGrid ที่เราส่งออกเนื้อหามา
- firstRow คือหมายเลขแถวของเซลล์แรกที่ข้อมูลจะถูกส่งออกไป
- firstColumn คือหมายเลขคอลัมน์ของเซลล์แรกที่ข้อมูลจะถูกส่งออกไป
- insertRows คุณสมบัติบูลีนที่ระบุว่าควรเพิ่มแถวพิเศษลงในเวิร์กชีตเพื่อให้พอดีกับข้อมูลหรือไม่
- importStyle ซึ่งเป็นคุณสมบัติบูลีนที่ระบุว่าควรส่งออกสไตล์เซลล์หรือไม่
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งออกข้อมูลจาก DataGrid ไปยังไฟล์ Excel ใน 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");
ส่งออกข้อมูลที่จัดรูปแบบ HTML ไปยัง Excel ใน C#
Aspose.Cells ช่วยให้คุณสามารถส่งออกข้อมูลที่จัดรูปแบบ HTML ไปยังแผ่นงาน Excel API แยกวิเคราะห์ข้อความที่จัดรูปแบบ HTML ขณะส่งออกข้อมูลและแปลง HTML ให้เป็นค่าของเซลล์ที่จัดรูปแบบ ในโค้ดตัวอย่างต่อไปนี้ DataTable มีข้อความที่จัดรูปแบบ HTML และเรากำลังส่งออกไปยังเอกสาร Excel โดยใช้วิธี 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");
ส่งออกไฟล์ HTML ไปยัง Excel ใน C#
Aspose.Cells ช่วยให้เราสามารถส่งออกไฟล์ HTML ไปยัง Excel ไฟล์ HTML ควรเป็นแบบ Microsoft Excel เช่น MS-Excel ควรจะสามารถเปิดได้
// 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");
ส่งออกข้อมูล JSON ไปยัง Excel ใน C#
บางครั้งเราจำเป็นต้องส่งออกข้อมูล JSON ไปยังเอกสาร Excel ด้วย Aspose.Cells เราสามารถทำสิ่งนี้ได้อย่างง่ายดายโดยใช้โค้ดเพียงไม่กี่บรรทัด Aspose.Cells มีคลาส JsonUtility ที่มีเมธอด ImportData สำหรับการส่งออกข้อมูล JSON ไปยังเอกสาร Excel วิธีการ ImportData ยอมรับ JsonLayoutOptions วัตถุเป็นพารามิเตอร์ คลาส JsonLayoutOptions แสดงถึงตัวเลือกของโครงร่าง JSON และมีคุณสมบัติดังต่อไปนี้
- 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.
ในโค้ดตัวอย่างต่อไปนี้ เรากำลังส่งออกข้อมูล JSON ไปยังไฟล์ Excel ใน 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"
}
}
}
}
ส่งออกข้อมูล CSV ไปยัง Excel ใน C#
ไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) เป็นไฟล์ข้อความที่ใช้ตัวคั่นซึ่งใช้เครื่องหมายจุลภาคเพื่อแยกค่า โดยทั่วไปไฟล์ CSV จะจัดเก็บข้อมูลแบบตาราง (ตัวเลขและข้อความ) ในรูปแบบข้อความธรรมดา ซึ่งในกรณีนี้แต่ละบรรทัดจะมีจำนวนฟิลด์เท่ากัน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีที่เราสามารถเปิดไฟล์ CSV และบันทึกเป็นไฟล์ Excel โดยใช้ไลบรารี 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");
บทสรุป
ในโพสต์นี้ คุณได้เห็นว่าคุณสามารถส่งออกข้อมูลไปยัง Excel ใน C# จาก Array, DataTable, DataView, DataGrid และ GridView ได้อย่างง่ายดายเพียงใด คุณยังได้เห็นวิธีการส่งออกข้อมูล HTML, JSON, CSV ไปยังแผ่นงาน Excel โปรดตรวจสอบ เอกสารประกอบ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติเหล่านี้และคุณสมบัติอื่น ๆ ที่ Aspose.Cells API นำเสนอ หากคุณมีคำถามใด ๆ โปรดติดต่อเราผ่านทาง ฟอรัมการสนับสนุน