Aspose.Cells for .NET 教程(一):入门基础

作者:微信公众号:【架构师老卢】
9-24 19:49
9

Aspose.Cells for .NET下载地址 https://soft51.cc/software/175799451582733643

1.1 Aspose.Cells 简介

Aspose.Cells for .NET 是一个功能强大的电子表格处理库,允许开发者在 .NET 应用程序中创建、读取、编辑和转换 Excel 文件,而无需在服务器或客户端机器上安装 Microsoft Excel。这个库提供了丰富的 API,支持几乎所有 Excel 的功能特性。

主要特性

核心功能:

  • 创建新的工作簿和工作表
  • 读取和写入各种 Excel 格式
  • 数据格式化和样式设置
  • 公式计算和函数支持
  • 图表和图像处理
  • 数据验证和条件格式化

高级功能:

  • 数据透视表操作
  • 宏和 VBA 支持
  • 数字签名
  • 加密和解密
  • 打印和页面设置
  • 导入导出多种格式

应用场景

Aspose.Cells 广泛应用于:

  • 报表生成系统
  • 数据分析和处理
  • 财务管理系统
  • 库存管理
  • Web 应用中的 Excel 操作
  • 批量数据处理

1.2 安装与环境配置

通过 NuGet Package Manager 安装

这是推荐的安装方式,可以自动处理依赖关系并保持版本更新。

Visual Studio 中的安装步骤:

  1. 右键点击项目 → "管理 NuGet 程序包"
  2. 在"浏览"选项卡中搜索 "Aspose.Cells"
  3. 选择 Aspose.Cells 并点击"安装"

Package Manager Console 安装:

Install-Package Aspose.Cells

PackageReference 方式(.csproj 文件中):

<PackageReference Include="Aspose.Cells" Version="23.x.x" />

DLL 引用方式安装

如果需要手动管理 DLL 文件:

  1. 从 Aspose 官网下载 Aspose.Cells for .NET
  2. 解压下载的文件
  3. 在项目中添加对 Aspose.Cells.dll 的引用
  4. 确保目标 .NET Framework 版本兼容

环境要求

  • .NET Framework 4.0 或更高版本
  • .NET Core 2.0 或更高版本
  • .NET 5.0/6.0/7.0+ 支持
  • Visual Studio 2017 或更高版本(推荐)

许可证配置

// 设置许可证(如果有商业许可证)
License license = new License();
license.SetLicense("Aspose.Cells.lic");

1.3 创建第一个 Excel 文件

让我们从最简单的示例开始,创建一个基本的 Excel 文件。

基础代码示例

using Aspose.Cells;
using System;

class Program
{
    static void Main()
    {
        // 创建新的工作簿
        Workbook workbook = new Workbook();
        
        // 获取第一个工作表
        Worksheet worksheet = workbook.Worksheets[0];
        
        // 在单元格中添加数据
        worksheet.Cells["A1"].Value = "Hello World!";
        worksheet.Cells["A2"].Value = "欢迎使用 Aspose.Cells";
        worksheet.Cells["B1"].Value = 123.45;
        worksheet.Cells["B2"].Value = DateTime.Now;
        
        // 保存文件
        workbook.Save("FirstExcel.xlsx");
        
        Console.WriteLine("Excel 文件创建成功!");
    }
}

详细步骤说明

1. 创建工作簿对象

Workbook workbook = new Workbook();

工作簿(Workbook)是 Excel 文件的主要容器,包含一个或多个工作表。

2. 获取工作表

Worksheet worksheet = workbook.Worksheets[0];

新建的工作簿默认包含一个工作表,索引为 0。

3. 操作单元格

worksheet.Cells["A1"].Value = "Hello World!";

通过 Cells 集合可以访问任意单元格,支持 A1 样式和数字索引两种方式。

4. 保存文件

workbook.Save("FirstExcel.xlsx");

将工作簿保存到指定路径,格式根据文件扩展名自动识别。

添加多个工作表示例

using Aspose.Cells;

// 创建工作簿
Workbook workbook = new Workbook();

// 添加新工作表
Worksheet sheet1 = workbook.Worksheets[0];
sheet1.Name = "数据表";

Worksheet sheet2 = workbook.Worksheets.Add("统计表");
Worksheet sheet3 = workbook.Worksheets.Add("报告表");

// 在不同工作表中添加数据
sheet1.Cells["A1"].Value = "姓名";
sheet1.Cells["B1"].Value = "年龄";
sheet1.Cells["A2"].Value = "张三";
sheet1.Cells["B2"].Value = 25;

sheet2.Cells["A1"].Value = "统计项目";
sheet2.Cells["B1"].Value = "数量";

workbook.Save("MultipleSheets.xlsx");

1.4 支持的文件格式

Aspose.Cells 支持广泛的文件格式,满足不同场景的需求。

支持的输入格式(读取)

| 格式 | 描述 | 扩展名 | |------|------|--------| | Excel 97-2003 | 传统 Excel 格式 | .xls | | Excel 2007+ | Office Open XML 格式 | .xlsx | | Excel Macro-Enabled | 支持宏的工作簿 | .xlsm | | Excel Template | Excel 模板 | .xlt, .xltx, .xltm | | OpenDocument | OpenOffice Calc 格式 | .ods | | CSV | 逗号分隔值 | .csv | | Tab Delimited | 制表符分隔 | .tsv, .tab | | SpreadsheetML | XML 电子表格格式 | .xml | | HTML | 网页格式 | .html, .htm | | JSON | JavaScript 对象标记 | .json |

支持的输出格式(保存)

除了上述输入格式外,还支持以下输出格式:

| 格式 | 描述 | 扩展名 | |------|------|--------| | PDF | 便携式文档格式 | .pdf | | XPS | XML 纸张规范 | .xps | | Image | 图像格式 | .png, .jpg, .gif, .bmp, .tiff | | SVG | 可缩放矢量图形 | .svg | | EPUB | 电子书格式 | .epub |

文件格式操作示例

using Aspose.Cells;

// 读取不同格式的文件
public void ReadDifferentFormats()
{
    // 读取 .xls 文件
    Workbook xlsWorkbook = new Workbook("data.xls");
    
    // 读取 .csv 文件
    Workbook csvWorkbook = new Workbook("data.csv");
    
    // 读取 .ods 文件
    Workbook odsWorkbook = new Workbook("data.ods");
    
    Console.WriteLine($"XLS 工作表数量: {xlsWorkbook.Worksheets.Count}");
    Console.WriteLine($"CSV 工作表数量: {csvWorkbook.Worksheets.Count}");
    Console.WriteLine($"ODS 工作表数量: {odsWorkbook.Worksheets.Count}");
}

// 保存为不同格式
public void SaveToDifferentFormats()
{
    Workbook workbook = new Workbook();
    Worksheet worksheet = workbook.Worksheets[0];
    
    // 添加一些示例数据
    worksheet.Cells["A1"].Value = "产品名称";
    worksheet.Cells["B1"].Value = "价格";
    worksheet.Cells["A2"].Value = "笔记本电脑";
    worksheet.Cells["B2"].Value = 5999.99;
    
    // 保存为不同格式
    workbook.Save("output.xlsx");  // Excel 2007+
    workbook.Save("output.xls");   // Excel 97-2003
    workbook.Save("output.pdf");   // PDF
    workbook.Save("output.csv");   // CSV
    workbook.Save("output.html");  // HTML
    
    Console.WriteLine("文件已保存为多种格式");
}

格式检测

using Aspose.Cells;

public void DetectFileFormat()
{
    FileFormatInfo formatInfo = FileFormatUtil.DetectFileFormat("unknown_file.dat");
    
    Console.WriteLine($"文件格式: {formatInfo.FileFormatType}");
    Console.WriteLine($"是否加密: {formatInfo.IsEncrypted}");
    Console.WriteLine($"加载格式: {formatInfo.LoadFormat}");
}

综合代码示例这个综合示例演示了 Aspose.Cells for .NET 的入门基础功能,包括:

using System;
using System.IO;
using Aspose.Cells;

namespace AsposeCellsBasicsTutorial
{
    /// <summary>
    /// Aspose.Cells for .NET 入门基础综合示例
    /// 演示环境配置、文件创建、格式支持等核心功能
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("=== Aspose.Cells for .NET 入门基础教程 ===\n");

            try
            {
                // 1. 基础文件创建
                CreateBasicExcelFile();

                // 2. 多工作表操作
                CreateMultipleSheets();

                // 3. 不同数据类型处理
                HandleDifferentDataTypes();

                // 4. 文件格式转换
                ConvertFileFormats();

                // 5. 文件格式检测
                DetectFileFormats();

                Console.WriteLine("\n所有示例执行完成!");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"发生错误: {ex.Message}");
            }

            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
        }

        /// <summary>
        /// 创建基础的 Excel 文件
        /// </summary>
        static void CreateBasicExcelFile()
        {
            Console.WriteLine("1. 创建基础 Excel 文件");

            // 创建新工作簿
            Workbook workbook = new Workbook();

            // 获取第一个工作表
            Worksheet worksheet = workbook.Worksheets[0];

            // 设置工作表名称
            worksheet.Name = "基础示例";

            // 添加标题行
            worksheet.Cells["A1"].Value = "编号";
            worksheet.Cells["B1"].Value = "姓名";
            worksheet.Cells["C1"].Value = "年龄";
            worksheet.Cells["D1"].Value = "入职日期";
            worksheet.Cells["E1"].Value = "工资";

            // 添加数据行
            worksheet.Cells["A2"].Value = 1;
            worksheet.Cells["B2"].Value = "张三";
            worksheet.Cells["C2"].Value = 28;
            worksheet.Cells["D2"].Value = new DateTime(2023, 3, 15);
            worksheet.Cells["E2"].Value = 8500.50;

            worksheet.Cells["A3"].Value = 2;
            worksheet.Cells["B3"].Value = "李四";
            worksheet.Cells["C3"].Value = 32;
            worksheet.Cells["D3"].Value = new DateTime(2022, 8, 20);
            worksheet.Cells["E3"].Value = 9200.00;

            // 设置列宽
            worksheet.Cells.SetColumnWidth(1, 15); // B列(姓名)
            worksheet.Cells.SetColumnWidth(3, 20); // D列(日期)

            // 保存文件
            string fileName = "BasicExample.xlsx";
            workbook.Save(fileName);

            Console.WriteLine($"   ✓ 文件已保存: {fileName}\n");
        }

        /// <summary>
        /// 创建多个工作表
        /// </summary>
        static void CreateMultipleSheets()
        {
            Console.WriteLine("2. 创建多工作表文件");

            Workbook workbook = new Workbook();

            // 重命名默认工作表
            Worksheet sheet1 = workbook.Worksheets[0];
            sheet1.Name = "员工信息";

            // 添加员工数据
            sheet1.Cells["A1"].Value = "姓名";
            sheet1.Cells["B1"].Value = "部门";
            sheet1.Cells["C1"].Value = "职位";

            sheet1.Cells["A2"].Value = "王五";
            sheet1.Cells["B2"].Value = "技术部";
            sheet1.Cells["C2"].Value = "工程师";

            sheet1.Cells["A3"].Value = "赵六";
            sheet1.Cells["B3"].Value = "销售部";
            sheet1.Cells["C3"].Value = "销售经理";

            // 添加第二个工作表 - 部门统计
            Worksheet sheet2 = workbook.Worksheets.Add("部门统计");
            sheet2.Cells["A1"].Value = "部门";
            sheet2.Cells["B1"].Value = "人数";
            sheet2.Cells["A2"].Value = "技术部";
            sheet2.Cells["B2"].Value = 5;
            sheet2.Cells["A3"].Value = "销售部";
            sheet2.Cells["B3"].Value = 3;

            // 添加第三个工作表 - 月度报告
            Worksheet sheet3 = workbook.Worksheets.Add("月度报告");
            sheet3.Cells["A1"].Value = "报告日期";
            sheet3.Cells["B1"].Value = DateTime.Now.ToString("yyyy-MM-dd");
            sheet3.Cells["A2"].Value = "总员工数";
            sheet3.Cells["B2"].Value = 8;
            sheet3.Cells["A3"].Value = "新入职";
            sheet3.Cells["B3"].Value = 2;

            string fileName = "MultipleSheets.xlsx";
            workbook.Save(fileName);

            Console.WriteLine($"   ✓ 多工作表文件已保存: {fileName}");
            Console.WriteLine($"   ✓ 工作表数量: {workbook.Worksheets.Count}\n");
        }

        /// <summary>
        /// 处理不同的数据类型
        /// </summary>
        static void HandleDifferentDataTypes()
        {
            Console.WriteLine("3. 处理不同数据类型");

            Workbook workbook = new Workbook();
            Worksheet worksheet = workbook.Worksheets[0];
            worksheet.Name = "数据类型示例";

            // 文本数据
            worksheet.Cells["A1"].Value = "文本数据";
            worksheet.Cells["A2"].Value = "这是一个字符串";

            // 数值数据
            worksheet.Cells["B1"].Value = "数值数据";
            worksheet.Cells["B2"].Value = 12345.67;
            worksheet.Cells["B3"].Value = -98765;

            // 日期时间数据
            worksheet.Cells["C1"].Value = "日期时间";
            worksheet.Cells["C2"].Value = DateTime.Now;
            worksheet.Cells["C3"].Value = new DateTime(2024, 12, 25);

            // 布尔值
            worksheet.Cells["D1"].Value = "布尔值";
            worksheet.Cells["D2"].Value = true;
            worksheet.Cells["D3"].Value = false;

            // 公式
            worksheet.Cells["E1"].Value = "公式";
            worksheet.Cells["E2"].Formula = "=B2*2";
            worksheet.Cells["E3"].Formula = "=SUM(B2:B3)";

            // 百分比
            worksheet.Cells["F1"].Value = "百分比";
            worksheet.Cells["F2"].Value = 0.85;
            worksheet.Cells["F3"].Value = 0.42;

            // 设置数字格式
            Style style = workbook.CreateStyle();
            style.Number = 9; // 百分比格式
            worksheet.Cells["F2"].SetStyle(style);
            worksheet.Cells["F3"].SetStyle(style);

            // 设置日期格式
            Style dateStyle = workbook.CreateStyle();
            dateStyle.Custom = "yyyy-mm-dd hh:mm:ss";
            worksheet.Cells["C2"].SetStyle(dateStyle);
            worksheet.Cells["C3"].SetStyle(dateStyle);

            string fileName = "DataTypes.xlsx";
            workbook.Save(fileName);

            Console.WriteLine($"   ✓ 数据类型示例已保存: {fileName}\n");
        }

        /// <summary>
        /// 文件格式转换演示
        /// </summary>
        static void ConvertFileFormats()
        {
            Console.WriteLine("4. 文件格式转换");

            // 创建示例数据
            Workbook workbook = new Workbook();
            Worksheet worksheet = workbook.Worksheets[0];

            worksheet.Cells["A1"].Value = "产品名称";
            worksheet.Cells["B1"].Value = "价格";
            worksheet.Cells["C1"].Value = "库存";

            worksheet.Cells["A2"].Value = "iPhone 15";
            worksheet.Cells["B2"].Value = 7999.00;
            worksheet.Cells["C2"].Value = 50;

            worksheet.Cells["A3"].Value = "MacBook Pro";
            worksheet.Cells["B3"].Value = 12999.00;
            worksheet.Cells["C3"].Value = 25;

            // 保存为不同格式
            try
            {
                workbook.Save("Products.xlsx");
                Console.WriteLine("   ✓ 保存为 XLSX 格式");

                workbook.Save("Products.xls");
                Console.WriteLine("   ✓ 保存为 XLS 格式");

                workbook.Save("Products.csv");
                Console.WriteLine("   ✓ 保存为 CSV 格式");

                workbook.Save("Products.pdf");
                Console.WriteLine("   ✓ 保存为 PDF 格式");

                workbook.Save("Products.html");
                Console.WriteLine("   ✓ 保存为 HTML 格式");

                // 保存工作表为图片
                worksheet.ToImage("Products.png", System.Drawing.Imaging.ImageFormat.Png);
                Console.WriteLine("   ✓ 保存为 PNG 图像");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"   ✗ 格式转换错误: {ex.Message}");
            }

            Console.WriteLine();
        }

        /// <summary>
        /// 文件格式检测演示
        /// </summary>
        static void DetectFileFormats()
        {
            Console.WriteLine("5. 文件格式检测");

            string[] testFiles = { "Products.xlsx", "Products.xls", "Products.csv" };

            foreach (string file in testFiles)
            {
                if (File.Exists(file))
                {
                    try
                    {
                        FileFormatInfo formatInfo = FileFormatUtil.DetectFileFormat(file);
                        Console.WriteLine($"   文件: {file}");
                        Console.WriteLine($"   ├─ 格式类型: {formatInfo.FileFormatType}");
                        Console.WriteLine($"   ├─ 加载格式: {formatInfo.LoadFormat}");
                        Console.WriteLine($"   └─ 是否加密: {formatInfo.IsEncrypted}");
                        Console.WriteLine();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine($"   检测 {file} 时出错: {ex.Message}");
                    }
                }
            }
        }
    }

    /// <summary>
    /// 许可证配置类(如果有商业许可证时使用)
    /// </summary>
    public static class LicenseConfig
    {
        /// <summary>
        /// 设置 Aspose.Cells 许可证
        /// </summary>
        /// <param name="licensePath">许可证文件路径</param>
        public static void SetLicense(string licensePath)
        {
            try
            {
                if (File.Exists(licensePath))
                {
                    License license = new License();
                    license.SetLicense(licensePath);
                    Console.WriteLine("许可证设置成功");
                }
                else
                {
                    Console.WriteLine("许可证文件不存在,将使用评估版本");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"设置许可证时出错: {ex.Message}");
            }
        }

        /// <summary>
        /// 从流设置许可证
        /// </summary>
        /// <param name="licenseStream">许可证流</param>
        public static void SetLicense(Stream licenseStream)
        {
            try
            {
                License license = new License();
                license.SetLicense(licenseStream);
                Console.WriteLine("许可证设置成功");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"设置许可证时出错: {ex.Message}");
            }
        }
    }
}

示例功能概览

  1. 基础文件创建:展示如何创建简单的 Excel 文件,添加数据和设置基本格式
  2. 多工作表操作:演示如何创建和管理多个工作表
  3. 数据类型处理:展示不同数据类型(文本、数字、日期、布尔值、公式)的处理
  4. 格式转换:演示如何将同一份数据保存为不同的文件格式
  5. 格式检测:展示如何检测现有文件的格式信息

运行环境要求

  • .NET Framework 4.0+ 或 .NET Core 2.0+
  • Visual Studio 2017 或更高版本
  • 已安装 Aspose.Cells for .NET NuGet 包

输出文件

运行示例后将生成以下文件:

  • BasicExample.xlsx - 基础示例文件
  • MultipleSheets.xlsx - 多工作表文件
  • DataTypes.xlsx - 数据类型示例
  • Products.xlsx/xls/csv/pdf/html - 不同格式的产品数据
  • Products.png - 工作表图像

这个教程为后续的进阶功能学习奠定了坚实的基础。在掌握了这些基础概念后,你就可以开始学习更高级的功能,如单元格操作、样式设置、公式计算等。

Aspose.Cells for .NET下载地址 https://soft51.cc/software/175799451582733643

相关留言评论
昵称:
邮箱:
阅读排行