在当今数字化时代,通过编程方式管理和操作 Excel 文件已成为开发者的必备技能。无论您是在构建报表工具、自动化数据处理,还是通过动态数据处理增强应用程序功能,拥有一个强大的库可以带来显著不同。Spire.XLS for .NET 正是这样一款多功能且强大的库,它能让您使用 C# 无缝地创建、读取、写入和编辑 Excel 文件。
本文将从以下几个方面展示如何利用 C# 和 Spire.XLS for .NET 轻松编辑 Excel 文档。
安装 Spire.XLS for .NET
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从 此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS
读写 Excel 文件
在使用C#操作Excel文件时,最常见的任务之一就是读取和写入数据。Spire.XLS for .NET 提供了 CellRange.Value 属性,使开发者能够轻松获取或设置单个单元格的值。
以下是使用 C# 读写 Excel 文件的步骤:
- 创建 Workbook 对象。
- 从指定文件路径加载 Excel 文件。
- 使用 Workbook.Worksheets[] 属性获取特定工作表。
- 使用 Worksheet.Range[] 属性获取特定单元格。
- 使用 CellRange.Value 属性读取或设置单元格值。
- 将工作簿另存为新的 Excel 文件。
- C#
using Spire.Xls;
namespace ReadAndWriteExcel
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 对象
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// 获取一个特定的工作表
Worksheet worksheet = workbook.Worksheets[0];
// 获取一个特定的单元格
CellRange cell = worksheet.Range["A1"];
// 读取单元格的值
String text = cell.Value;
// 判断单元格的值是否为 "区域"
if (text == "区域")
{
// 更新单元格的值
cell.Value = "地区";
}
// 将工作簿保存到不同的文件
workbook.SaveToFile("读写Excel.xlsx", ExcelVersion.Version2016);
// 释放资源
workbook.Dispose();
}
}
}
为 Excel 单元格设置样式
样式和格式设置是制作专业 Excel 报表的重要环节。Spire.XLS for .NET 在 CellRange 类中提供了丰富的 API,可用于管理单元格样式、字体、颜色、对齐方式,以及调整行高和列宽。
以下是设置 Excel 单元格样式与格式的步骤:
- 创建 Workbook 对象。
- 从指定文件路径加载 Excel文件。
- 使用 Workbook.Worksheets[] 属性获取特定工作表。
- 使用 Worksheet.AllocatedRange 属性获取包含数据的单元格区域。
- 使用 CellRange.Rows[] 属性获取指定行,并通过 CellRange 对象的属性设置单元格背景色、文字颜色、文本对齐方式及行高。
- 使用 CellRange.Columns[] 属性获取指定列,并通过 ColumnWidth 属性设置列宽。
- 将工作簿另存为新的 Excel文件。
- C#
using Spire.Xls;
using System.Drawing;
namespace FormatCells
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 对象
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// 获取一个特定的工作表
Worksheet worksheet = workbook.Worksheets[0];
// 获取工作表中的所有已分配范围
CellRange allocatedRange = worksheet.AllocatedRange;
// 遍历行
for (int rowNum = 0; rowNum < allocatedRange.RowCount; rowNum++)
{
if(rowNum == 0)
{
// 为标题行应用单元格颜色
allocatedRange.Rows[rowNum].Style.Color = Color.Black;
// 更改标题行的字体颜色
allocatedRange.Rows[rowNum].Style.Font.Color = Color.White;
}
// 为其他行应用交替颜色
else if (rowNum % 2 == 1)
{
allocatedRange.Rows[rowNum].Style.Color = Color.LightGray;
}
else if (rowNum % 2 == 0)
{
allocatedRange.Rows[rowNum].Style.Color = Color.White;
}
// 将文本居中对齐
allocatedRange.Rows[rowNum].HorizontalAlignment = HorizontalAlignType.Center;
allocatedRange.Rows[rowNum].VerticalAlignment = VerticalAlignType.Center;
// 设置行高
allocatedRange.Rows[rowNum].RowHeight = 18;
}
// 遍历列
for (int columnNum = 0; columnNum < allocatedRange.ColumnCount; columnNum++)
{
// 设置列宽
if (columnNum > 0)
{
allocatedRange.Columns[columnNum].ColumnWidth = 12;
}
}
// 将工作簿保存到不同的文件
workbook.SaveToFile("应用格式.xlsx", ExcelVersion.Version2016);
// 释放资源
workbook.Dispose();
}
}
}
查找和替换 Excel 文本
Excel 的查找替换功能既能提升数据准确性和一致性,又能显著提高工作效率。借助 Spire.XLS for .NET,您可以通过 Worksheet.FindString() 方法快速定位包含特定字符串的单元格,再使用 CellRange.Value 属性更新单元格内容。
使用 C# 实现 Excel 文本查找替换的步骤如下:
- 创建 Workbook 对象。
- 从指定文件路径加载 Excel文件。
- 使用 Workbook.Worksheets[] 属性获取特定工作表。
- 通过 Worksheet.FindString() 方法查找包含目标字符串的单元格。
- 使用 CellRange.Value 属性更新单元格值。
- 将工作簿另存为新的 Excel文件。
- C#
using Spire.Xls;
namespace FindAndReplaceText
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 对象
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// 获取一个特定的工作表
Worksheet worksheet = workbook.Worksheets[0];
// 定义一个字符串数组用于替换
String[] new_strings = new String[] { "西部厂区", "东北厂区", "北部厂区", "南部厂区", "中部厂区" };
// 定义一个字符串数组,在 Excel 表中将被替换
String[] old_strings = new String[] { "西部", "东部", "北部", "南部", "中部" };
// 遍历旧字符串
for (int i = 0; i < old_strings.Length; i++)
{
// 查找包含当前旧字符串的单元格
CellRange cell = worksheet.FindString(old_strings[i], false, false);
// 用新字符串替换找到的单元格中的文本
cell.Text = new_strings[i];
}
// 将工作簿保存到不同的文件
workbook.SaveToFile("替换文本.xlsx", ExcelVersion.Version2016);
// 释放资源
workbook.Dispose();
}
}
}
向 Excel 添加公式和图表
除了基本的文件操作外,Spire.XLS for .NET 还提供了多种高级功能来处理 Excel 文件。这些技术可用于自动化复杂任务、执行计算以及生成动态报表。
以下是使用 C# 在 Excel 中添加公式和创建图表的步骤:
- 创建 Workbook 对象。
- 从指定文件路径加载 Excel文件。
- 使用 Workbook.Worksheets[] 属性获取特定工作表。
- 使用 Worksheet.Range[] 属性获取特定单元格。
- 通过 CellRange.Formula 属性为单元格添加公式。
- 使用 Worksheet.Charts.Add() 方法在工作表中添加柱状图。
- 通过 Chart 对象的方法和属性设置图表数据范围、位置、标题等属性。
- 将工作簿另存为新的 Excel 文件。
- C#
using Spire.Xls;
namespace AddFormulaAndChart
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 对象
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// 获取一个特定的工作表
Worksheet worksheet = workbook.Worksheets[0];
// 获取所有已分配范围
CellRange allocatedRange = worksheet.AllocatedRange;
// 遍历行
for (int rowNum = 0; rowNum < allocatedRange.RowCount; rowNum++)
{
if (rowNum == 0)
{
// 在单元格 F1 中写入文本
worksheet.Range[rowNum + 1, 6].Text = "年度";
// 为单元格应用样式
worksheet.Range[rowNum + 1, 6].Style.Font.IsBold = true;
worksheet.Range[rowNum + 1, 6].Style.Font.FontName = "宋体";
worksheet.Range[rowNum + 1, 6].Style.Font.Size = 12;
worksheet.Range[rowNum + 1, 6].Style.HorizontalAlignment = HorizontalAlignType.Center;
}
else
{
// 为单元格 F2 到 F6 添加公式
worksheet.Range[rowNum + 1, 6].Formula = $"=SUM(B{rowNum + 1}:E{rowNum + 1})";
// 为单元格应用样式
worksheet.Range[rowNum + 1, 6].Style.Font.FontName = "Times New Roman";
worksheet.Range[rowNum + 1, 6].Style.Font.Size = 12;
worksheet.Range[rowNum + 1, 6].Style.HorizontalAlignment = HorizontalAlignType.Center;
}
}
// 添加一个聚类柱状图
Chart chart = worksheet.Charts.Add(ExcelChartType.ColumnClustered);
// 设置图表的数据范围
chart.DataRange = worksheet.Range["A1:E6"];
chart.SeriesDataFromRange = false;
// 设置图表的位置
chart.LeftColumn = 1;
chart.TopRow = 7;
chart.RightColumn = 7;
chart.BottomRow = 18;
// 设置和格式化图表标题
chart.ChartTitle = "区域季度生产量";
chart.ChartTitleArea.Size = 13;
chart.ChartTitleArea.IsBold = true;
// 将工作簿保存到不同的文件
workbook.SaveToFile("添加公式和图表.xlsx", ExcelVersion.Version2016);
// 释放资源
workbook.Dispose();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。