C# NOIP创建excel文件写入数据并对数据排序扩展到所有区域
要在C#中创建Excel文件并写入数据,可以使用Microsoft.Office.Interop.Excel库。以下是一个示例代码:
using Excel = Microsoft.Office.Interop.Excel;
public void CreateAndWriteExcel()
{
// 创建Excel应用程序对象
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
// 创建工作簿
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1];
// 写入数据
worksheet.Cells[1, 1] = "Name";
worksheet.Cells[1, 2] = "Age";
worksheet.Cells[2, 1] = "John";
worksheet.Cells[2, 2] = 25;
worksheet.Cells[3, 1] = "Mary";
worksheet.Cells[3, 2] = 30;
// 对数据进行排序
Excel.Range range = worksheet.UsedRange;
range.Sort(range.Columns[1], Excel.XlSortOrder.xlAscending, Header: Excel.XlYesNoGuess.xlYes);
// 自动调整列宽
range.EntireColumn.AutoFit();
// 保存文件
workbook.SaveAs("C:\\path\\to\\file.xlsx");
// 关闭Excel应用程序对象
workbook.Close();
excelApp.Quit();
}
此代码将创建一个新的Excel文件,并在第一个工作表中写入数据。然后,它将按照第一列的值对数据进行排序,并自动调整列宽以适应内容。最后,它将保存文件并关闭Excel应用程序对象。
如果要将此代码扩展到所有区域,可以使用循环来写入数据和排序。以下是一个示例代码:
public void CreateAndWriteExcel()
{
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1];
// 写入数据
string[,] data = new string[,]
{
{ "Name", "Age" },
{ "John", "25" },
{ "Mary", "30" },
// 其他数据...
};
int rowCount = data.GetLength(0);
int columnCount = data.GetLength(1);
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < columnCount; j++)
{
worksheet.Cells[i + 1, j + 1] = data[i, j];
}
}
// 对数据进行排序
Excel.Range range = worksheet.UsedRange;
range.Sort(range.Columns[1], Excel.XlSortOrder.xlAscending, Header: Excel.XlYesNoGuess.xlYes);
range.EntireColumn.AutoFit();
workbook.SaveAs("C:\\path\\to\\file.xlsx");
workbook.Close();
excelApp.Quit();
}
这个示例代码使用一个二维数组来存储数据,并使用嵌套循环来将数据写入Excel文件中。你可以根据需要修改数据和循环逻辑来适应你的需求
原文地址: http://www.cveoy.top/t/topic/hAd5 著作权归作者所有。请勿转载和采集!