C# WinForm创建Excel文件的实例

以下是C# WinForm创建Excel文件的实例攻略。

第一步:安装Excel应用程序

在使用C# WinForm创建Excel文件之前,我们需要确保已安装Excel应用程序。如果没有安装,可以前往微软官网下载安装。

第二步:添加引用

我们需要通过添加引用来调用Excel的COM组件。在Visual Studio中,右键点击“引用”,选择“添加引用”,在弹出的对话框中选择“COM”,找到“Microsoft Excel xx.x Object Library”,勾选后确定即可。

第三步:创建Excel文件和工作表

在我们的C# WinForm应用程序中,我们需要创建一个Excel文件,以及创建一个工作表。代码如下:

using Excel = Microsoft.Office.Interop.Excel;

// 创建Excel文件
var excelApp = new Excel.Application();
excelApp.Visible = false; // 不显示Excel
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets.Add();
worksheet.Name = "测试工作表";

在代码中,我们使用了Interop.Excel命名空间下的Excel对象来操作Excel应用程序,将其与前面添加的引用绑定。首先创建了一个Microsoft.Excel.Application实例,然后添加了一个Workbook,并通过Workbook创建了一个Worksheet,并将其命名为“测试工作表”。

第四步:添加数据

接下来,我们需要添加一些数据到工作表中。以下是两个示例来说明如何添加数据:

示例1:添加简单的数据

// 添加数据
worksheet.Cells[1, 1] = "姓名";
worksheet.Cells[1, 2] = "分数";
worksheet.Cells[2, 1] = "小明";
worksheet.Cells[2, 2] = 90;
worksheet.Cells[3, 1] = "小红";
worksheet.Cells[3, 2] = 80;
worksheet.Cells[4, 1] = "小刚";
worksheet.Cells[4, 2] = 95;

在这个示例中,我们使用了Cells属性来访问Excel工作表的单元格,并向其写入数据。

示例2:添加复杂数据

// 添加数据
var data = new object[,] { { "小明", 90, 95 }, { "小红", 80, 85 }, { "小刚", 95, 97 } };
for (int i = 0; i < data.GetLength(0); i++)
{
    for (int j = 0; j < data.GetLength(1); j++)
    {
        worksheet.Cells[i + 2, j + 1] = data[i, j];
    }
}
// 添加表头
var header = new object[,] { { "姓名", "语文", "数学" } };
Excel.Range range = worksheet.Range["A1:C1"];
range.Merge();
worksheet.Cells[1, 1] = "成绩单";
range.Font.Size = 18;
range.Font.Bold = true;
range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; // 文字居中
range = worksheet.Range["A2:C4"];
range.Columns.AutoFit(); // 自适应宽度
for (int i = 0; i < header.GetLength(0); i++)
{
    for (int j = 0; j < header.GetLength(1); j++)
    {
        worksheet.Cells[i + 1, j + 1] = header[i, j];
    }
}

在这个示例中,我们使用了一个二维数组来存储数据,并使用双重for循环将其写入Excel工作表中。同时,我们还添加了一个表头,并对其进行了一些格式化处理,如合并单元格、设置字体大小和加粗、文字居中、自适应列宽等等。

第五步:保存Excel文件

最后,我们需要将Excel文件保存到指定目录下。代码如下:

// 保存文件
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx|所有文件 (*.*)|*.*";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
    workbook.SaveAs(saveFileDialog.FileName);
    workbook.Close();
    excelApp.Quit();
    MessageBox.Show("Excel文件已保存!");
}

在代码中,我们使用了SaveFileDialog控件来让用户选择保存文件的目录和文件名,并保存Excel文件。将Excel文件的Workbook对象的SaveAs方法传入指定路径即可。最后需要关闭Workbook和Excel应用程序,同时弹出一个保存成功的提示框。

这就是创建Excel文件的实例攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# WinForm创建Excel文件的实例 - Python技术站

(1)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 基于SqlSugar的开发框架循序渐进介绍(28)– 快速构建系统参数管理界面

    在参照一些行业系统软件的时候,发现一个做的挺不错的系统功能-系统参数管理,相当于把任何一个基础的系统参数碎片化进行管理,每次可以读取一个值进行管理,这样有利于我们快速的处理业务需求,是一个挺好的功能。本篇随笔模拟这个功能,基于SqlSugar开发框架的基础上,利用代码生成工具快速生成系统参数管理界面和相关的业务类生成。 1、参考和具体实现的效果对比 参照的界…

    C# 2023年4月27日
    00
  • c#字符串编码编码(encoding)使用方法示例

    c#字符串编码编码(encoding)使用方法示例 在C#中,字符串编码(encoding)是将文字转换成二进制数据(byte数组),输出或读取到文件或设备中的方式。本文将介绍C#中字符串编码的使用方法及示例说明。 1. 编码与解码 编码指将字符串转换成二进制数据,而解码则是将二进制数据转换成字符串。在C#中,编码和解码都是通过Encoding类实现的。 以…

    C# 2023年6月1日
    00
  • c# winform异步不卡界面的实现方法

    这里详细讲解一下“c# winform异步不卡界面的实现方法”: 1. 为什么需要异步操作 在c# winform中,如果在主线程中执行了一些耗时的操作(例如访问网络或读取文件等),就会导致界面卡死,无法响应用户的操作。因此,我们需要使用异步操作来避免这种情况发生。 2. 异步操作的实现方法 2.1 使用Task类进行异步操作 在c#中,可以使用Task类进…

    C# 2023年6月1日
    00
  • C#中倒序输出字符串的方法示例

    下面是关于C#中倒序输出字符串的方法示例的完整攻略: 1. 使用Array.Reverse方法 下面是一个使用Array.Reverse方法的示例代码: string input = "Hello World"; char[] inputArray = input.ToCharArray(); Array.Reverse(inputArr…

    C# 2023年6月7日
    00
  • 用序列化实现List 实例的深复制(推荐)

    使用序列化实现List实例的深复制可以保证复制后的实例与原实例完全独立而不会相互影响。下面是使用序列化实现List实例深复制的详细攻略: 什么是深复制 深复制是指复制对象时,每个对象都会被单独复制一份,这两份对象完全独立而相互没有影响。这与浅复制不同,浅复制只是把对象的引用复制一份,这样两个对象会共用同一个引用,从而相互影响。 使用序列化实现深复制 针对Li…

    C# 2023年5月31日
    00
  • C#独立域名查询代码

    C#独立域名查询代码的完整攻略 前言 独立域名查询是一个经常被使用的功能,即用户输入一个域名地址,程序通过查询DNS服务器返回该域名对应的IP地址。以下将介绍如何使用C#实现独立域名查询功能。 实现步骤 1. 导入命名空间 使用System.Net命名空间提供的类实现域名查询功能,需要在程序中导入该命名空间。我们可以使用下面的语句导入该命名空间: using…

    C# 2023年5月31日
    00
  • C#实现Redis的分布式锁

    C#实现Redis的分布式锁 概述 在分布式系统中,为了保证数据的一致性,在某个时间段内只有一个客户端能够对数据进行操作。这种机制称为分布式锁。Redis非常适合实现分布式锁的机制,以下是C#实现Redis分布式锁的详细攻略。 Redis实现分布式锁的原理 Redis实现分布式锁的原理可以概括成两个步骤: 通过SETNX方法在共享资源上创建一个锁标记,创建成…

    C# 2023年6月1日
    00
  • EF Core从TPH迁移到TPT

    Intro EF Core支持多种方式处理具有继承关系的表,现在支持TPH、TPC(EF Core 7)、TPT,具体的实现方式可以参考官方文档和这篇文章。 大致总结一下不同的方式的区别:TPH:所有的类型都放在一张表中,使用discriminator字段用以区别不同的类型TPT:不同的子类型有单独的表存放子类独有的字段,父虚类型也有一张单独的表存放共有的字…

    C# 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部