Excel 电子表格是一种广泛使用的文件格式,可让用户以表格格式组织、分析和展示数据。通过编程与 Excel 进行交互能帮助开发人员实现自动化操作Excel文件并集成到软件应用程序中。在处理大型数据集、执行复杂计算或需要动态生成或更新数据时,这种功能尤其有用。在本文中,您将学习如何使用 Spire.XLS for .NET 在 C# 中创建、读取或更新 Excel 文档。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLSC# 创建 Excel 文档
Spire.XLS for NET 提供了各种可用于创建和编辑 Excel 文档的类和接口。下表列举了一些本文中用到的重要类、属性和方法。
| 成员 | 描述 | 
| Workbook 类 | 表示 Excel 工作簿模型。 | 
| Workbook.Worksheets.Add() 方法 | 添加工作表到工作簿。 | 
| Workbook.SaveToFile() 方法 | 将工作簿保存为 Excel 文档。 | 
| Worksheet 类 | 表示工作簿中的工作表。 | 
| Worksheet.Range 属性 | 获取工作表中的特定单元格或单元格区域。 | 
| Worksheet.Range.Value 属性 | 获取或设置单元格值。 | 
| Worksheet.Rows 属性 | 获取工作表中行的集合。 | 
| Worksheet.InsertDataTable() 方法 | 将数据从 DataTable 导入工作表。 | 
| CellRange 类 | 表示工作表中的单元格或单元格区域。 | 
以下是使用 Spire.XLS for .NET 创建一个新 Excel 文档的步骤:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.Worksheets.Add() 方法添加工作表。
- 通过 Worksheet.Range.Value 属性向特定单元格写入数据。
- 使用 Workheet.InsertDataTable() 方法将数据表中的数据导入工作表。
- 使用 Workbook.SaveToFile() 方法保存 Excel 文档。
- C#
using Spire.Xls;
using System.Data;
namespace CreateExcelSpreadsheet
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Workbook对象
            Workbook wb = new Workbook();
            //删除默认工作表
            wb.Worksheets.Clear();
            //添加一个工作表并命名
            Worksheet sheet = wb.Worksheets.Add("报价");
            //合并A1至G1单元格
            sheet.Range["A1:G1"].Merge();
            //在A1中写入数据并设置格式
            sheet.Range["A1"].Value = "活动费用报价表";
            sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center;
            sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center;
            sheet.Range["A1"].Style.Font.IsBold = true;
            sheet.Range["A1"].Style.Font.Size = 13F;
            //设置第一行的行高
            sheet.Rows[0].RowHeight = 30F;
            //创建一个DataTable并添加数据
            DataTable dt = new DataTable();
            dt.Columns.Add("编号");
            dt.Columns.Add("项目");
            dt.Columns.Add("规格说明");
            dt.Columns.Add("时间");
            dt.Columns.Add("数量");
            dt.Columns.Add("单价");
            dt.Columns.Add("价格");
            dt.Rows.Add("1", "钢架舞台", "8*4米", "1场", "18平米", "35元/平米", "630.00");
            dt.Rows.Add("2", "舞台围布", "20公分", "1场", "16米", "8元/米", "128.00");
            dt.Rows.Add("3", "背景架", "8*4米", "1场", "12平米", "35元/平米", "420.00");
            dt.Rows.Add("4", "条幅", "90公分宽", "永久", "10米", "10元/米", "100.00");
            dt.Rows.Add("5", "地毯", "全新红地毯", "永久", "100米(暂定)", "7元/米", "700.00");
            //将DataTable的数据导入工作表
            sheet.InsertDataTable(dt, true, 2, 1, true);
            //设置指定单元格区域的行高
            sheet.Range["A2:G7"].RowHeight = 15F;
            //设置列宽
            sheet.Range["A2:G7"].Columns[1].ColumnWidth = 13F;
            sheet.Range["A2:G7"].Columns[2].ColumnWidth = 12F;
            sheet.Range["A2:G7"].Columns[4].ColumnWidth = 14F;
            sheet.Range["A2:G7"].Columns[5].ColumnWidth = 12F;
            //设置指定单元格区域的边框样式
            sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium);
            sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin);
            sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium);
            sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black;
            //保存为 .xlsx 文件
            wb.SaveToFile("创建Excel文档.xlsx", FileFormat.Version2016);
        }
    }
}
C# 读取 Excel 数据
Worksheet.Range.Value 属性能以字符串形式返回单元格中的数字值或文本值。要获取整个 Excel 工作表或某个单元格区域中的数据,可循环遍历其中的单元格。以下是使用 Spire.XLS for .NET 读取 Excel 工作表中数据的步骤:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定工作表。
- 通过 Workbook.AllocatedRange 属性获取包含数据的单元格区域。
- 遍历行和列以获取单元格区域内的单元格,并通过 CellRange.Value 属性返回每个单元格的值。
- C#
using Spire.Xls;
using System;
namespace ReadExcelData
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Workbook对象
            Workbook wb = new Workbook();
            //加载Excel文档
            wb.LoadFromFile("创建Excel文档.xlsx");
            //获取第一张工作表
            Worksheet sheet = wb.Worksheets[0];
            //获取包含数据的单元格区域
            CellRange locatedRange = sheet.AllocatedRange;
            //遍历各行
            for (int i = 0; i < locatedRange.Rows.Length; i++)
            {
                //遍历各列
                for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
                {
                    //获取指定单元格的数据
                    Console.Write(locatedRange[i + 1, j + 1].Value + "  ");
                }
                Console.WriteLine();
            }
        }
    }
}
C# 更新 Excel 文档
要更改某个单元格的值,只需通过 Worksheet.Range.Value 属性为其重新赋值即可。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定工作表。
- 通过 Workheet.Range.Value 属性更改特定单元格的值。
- 使用 Workbook.SaveToFile() 方法保存 Excel 文件。
- C#
using Spire.Xls;
namespace UpdateCellValue
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Workbook对象
            Workbook wb = new Workbook();
            //加载Excel文档
            wb.LoadFromFile("创建Excel文档.xlsx");
            //获取第一张工作表
            Worksheet sheet = wb.Worksheets[0];
            //更改指定单元格的值
            sheet.Range["A1"].Value = "修改数据";
            //保存结果文件
            wb.SaveToFile("更新Excel.xlsx", ExcelVersion.Version2016);
        }
    }
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



