外围网上金喜网站

Spire.XLS系列教程:如何使用 C# 通过流创建、加载、修改和保存 Excel 文件

翻译|使用教程|编辑:吉炜炜|2024-12-30 17:11:27.730|阅读 126 次

概述:本文通过 Spire.XLS for .NET 演示如何使用 C# 通过流创建、加载、修改和保存 Excel 文件,为数据管理提供灵活且可扩展的解决方案。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

通过 C# 中的流进行操作,开发者可以动态地创建、加载、修改和保存 Excel 文件,从而实现灵活高效的数据处理。这种方法可以在很大程度上减少直接的磁盘 I/O 操作,不仅提升了应用程序性能,还增强了响应能力。尤其适用于实时数据操作或存储受限的场景,可以简化数据交换和系统集成。本文通过 Spire.XLS for .NET 演示如何使用 C# 通过流创建、加载、修改和保存 Excel 文件,为数据管理提供灵活且可扩展的解决方案。

Spire.XLS for .NET最新版下载  

安装 Spire.XLS for .NET

 首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从下载,也可以通过  安装。

PM> Install-Package Spire.XLS

用 C# 动态创建 Excel 文件并保存到流

利用 Spire.XLS for .NET,开发者可以通过初始化 Workbook 对象动态创建 Excel 文件,然后填充数据并设置格式,最后使用 Workbook.SaveToStream() 方法将其保存到流。这种方法可以省去直接对磁盘进行文件存储的需求,同时提升了应用的性能和响应速度。

以下是通过 C# 创建 Excel 文件并保存到流的步骤:

  • 创建 Workbook 类的实例以生成一个新的 Excel 工作簿,新建的工作簿默认包含三个工作表。
  • 使用 Workbook.Worksheets[] 属性访问特定的工作表。
  • 定义要写入工作表的数据,例如使用 DataTable 组织数据。
  • 通过 Worksheet.InsertDataTable() 方法直接将数据表插入工作表中,或者使用 Worksheet.Range[].Value 属性单独设置单元格的值。
  • 对工作表单元格进行格式化,例如设置颜色、字体、边框,或调整列宽。
  • 使用 Workbook.SaveToStream() 方法将工作簿保存到内存流中。保存后的流可用于进一步处理,例如保存为文件或通过网络进行传输。
using Spire.Xls;
using System.Data;
using System.Drawing;

namespace CreateExcelStream
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的工作簿实例
            Workbook workbook = new Workbook();

            // 获取工作簿中的第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 创建并填充一个包含示例数据的 DataTable
            DataTable dataTable = new DataTable("Data");
            dataTable.Columns.Add("编号", typeof(int));
            dataTable.Columns.Add("姓名", typeof(string));
            dataTable.Columns.Add("年龄", typeof(int));
            dataTable.Columns.Add("国家", typeof(string));
            dataTable.Columns.Add("工资 (¥)", typeof(decimal));
            dataTable.Rows.Add(1, "张伟", 29, "中国", 8000m);
            dataTable.Rows.Add(2, "李娜", 35, "中国", 12000m);
            dataTable.Rows.Add(3, "王强", 42, "中国", 15000m);
            dataTable.Rows.Add(4, "杰克", 26, "美国", 9500m);
            dataTable.Rows.Add(5, "陈思", 31, "中国", 11000m);
            dataTable.Rows.Add(6, "石原安子", 28, "日本", 8800m);

            // 将 DataTable 中的数据插入到工作表中
            sheet.InsertDataTable(dataTable, true, 1, 1);

            // 格式化工作表
            // 设置表头行的样式
            sheet.Rows[0].Style.Color = Color.LightSkyBlue;
            sheet.Rows[0].Style.Font.FontName = "微软雅黑";
            sheet.Rows[0].Style.Font.Size = 12f;
            sheet.Rows[0].BorderAround(); // 给表头行添加外边框
            sheet.Rows[0].Borders.Color = Color.LightSteelBlue; // 设置边框颜色

            // 设置数据行的样式
            for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
            {
                sheet.Rows[i].Style.Color = Color.LightGray;
                sheet.Rows[i].Style.Font.FontName = "微软雅黑";
                sheet.Rows[i].Style.Font.Size = 11f;
            }
            sheet.Range[2, 1, sheet.Rows.Count(), sheet.Columns.Count()].BorderInside(); // 添加数据行单元格内边框
            sheet.Range[2, 1, sheet.Rows.Count(), sheet.Columns.Count()].Borders.Color = Color.LightSteelBlue; // 设置边框颜色

            // 调整列宽以适应内容
            for (int j = 1; j <= sheet.AllocatedRange.Columns.Count(); j++)
            {
                sheet.AutoFitColumn(j);
            }

            // 将工作簿保存到内存流
            MemoryStream stream = new MemoryStream();
            workbook.SaveToStream(stream, FileFormat.Version2016);

            // 将流内容写入到文件
            File.WriteAllBytes("output/通过流创建Excel文件.xlsx", stream.ToArray());

            // 释放资源
            workbook.Dispose();
        }
    }
}

使用 C# 创建 Excel 文件并保存到流

用 C# 从流加载并读取 Excel 文件

通过 Spire.XLS for .NET,开发者可以利用 Workbook.LoadFromStream() 方法直接从流加载 Excel 文件。加载完成后,可以轻松读取到流中 Excel 文件的单元格数据,实现快速灵活的数据处理,而无需文件 I/O 操作。

以下是通过 C# 从流加载并读取 Excel 文件的步骤:

  • 创建一个 Workbook 实例。
  • 创建一个 MemoryStream 或 FileStream 对象。
  • 使用 Workbook.LoadFromStream() 方法将 Excel 文件从流中加载到工作簿中。
  • 使用 Workbook.Worksheets[] 属性获取第一个工作表。
  • 遍历工作表的行和列,通过 Worksheet.AllocatedRange[].Value 属性提取单元格数据。
  • 打印提取的数据,或将数据用于其他操作。
using Spire.Xls;

namespace LoadExcelStream
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Workbook 类的实例
            Workbook workbook = new Workbook();

            // 创建一个内存流
            MemoryStream stream = new MemoryStream();
            File.OpenRead("Sample.xlsx").CopyTo(stream);

            // 从内存流加载 Excel 文件
            workbook.LoadFromStream(stream);

            // 获取工作簿中的第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 初始化一个列表,用于存储从工作表中提取的数据
            List<List<string>> data = new List<List<string>>();
            for (int i = 0; i < sheet.AllocatedRange.Rows.Count(); i++)
            {
                // 创建一个列表来存储每行数据
                List<string> lines = new List<string>();
                for (int j = 0; j < sheet.AllocatedRange.Columns.Count(); j++)
                {
                    // 获取单元格的值并添加到当前行的列表中
                    lines.Add(sheet.AllocatedRange[i + 1, j + 1].Value);
                }
                // 将当前行的数据添加到数据列表中
                data.Add(lines);
            }

            // 打印提取的数据,或将其用于后续操作
            foreach (List<string> lines in data)
            {
                Console.WriteLine(string.Join(" | ", lines));
            }
        }
    }
}


使用 Spire.XLS 从流中加载 Excel 文件并读取数据

用 C# 在流中修改并保存 Excel 文件

借助 Spire.XLS for .NET,开发者可以在内存中修改 Excel 文件。首先通过 LoadFromStream() 方法将流中的 Excel 文件加载到 Workbook 对象中。完成修改(例如更改单元格值或格式)后,可以使用 Workbook.SaveToStream() 方法将文件保存回流。无需依赖直接的文件存储操作即可实现实时的 Excel 文件数据更改。

以下是通过 C# 修改流中 Excel 文件的步骤:

  • 创建代表 Excel 文件的 Workbook 实例。
  • 创建 MemoryStream 或 FileStream 实例。
  • 使用 Workbook.LoadFromStream() 方法从流加载 Excel 文件。
  • 通过 Workbook.Worksheets[] 属性访问工作表。
  • 修改表头行及数据行的样式(字体、大小、背景色等),通过 CellRange.Style 属性完成。
  • 使用 Worksheet.AutoFitColumn() 方法自动调整列宽以适应内容。
  • 使用 Workbook.SaveToStream() 方法将更改保存到流。
using Spire.Xls;
using System.Drawing;

namespace ModifyExcelStream
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 类的一个新实例
            Workbook workbook = new Workbook();

            // 创建一个内存流
            MemoryStream stream = new MemoryStream();
            File.OpenRead("Sample.xlsx").CopyTo(stream);

            // 从内存流加载 Excel 文件
            workbook.LoadFromStream(stream);

            // 获取工作簿中的第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 修改表头行的样式
            CellRange headerRow = sheet.AllocatedRange.Rows[0];
            headerRow.Style.Font.FontName = "宋体";
            headerRow.Style.Font.Size = 12f;
            headerRow.Style.Color = Color.LightBlue;

            // 修改数据行的样式
            for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
            {
                CellRange dataRow = sheet.AllocatedRange.Rows[i];
                dataRow.Style.Font.FontName = "宋体";
                dataRow.Style.Font.Size = 10f;
                dataRow.Style.Color = Color.LightGray;

                // 交替着色(偶数行)
                if (i % 2 == 0)
                {
                    dataRow.Style.Color = Color.LightSlateGray;
                }
            }

            // 自动调整列宽以适应内容
            for (int k = 1; k <= sheet.AllocatedRange.Columns.Count(); k++)
            {
                sheet.AutoFitColumn(k);
            }

            // 修改边框颜色
            sheet.AllocatedRange.Style.Borders.Color = Color.White;

            // 将修改后的工作簿保存回内存流
            workbook.SaveToStream(stream);

            // 将流内容写入到一个新文件
            File.WriteAllBytes("output/通过流修改Excel文件.xlsx", stream.ToArray());

            // 释放资源
            workbook.Dispose();
        }
    }
}

使用 .NET 在流中修改 Excel 文件

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询  ;技术交流Q群(767755948)

慧都年终大促火热开启


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ipmdipw.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Spire.XLS for .NET

Spire.XLS for .NET是专业.NET Excel组件,快速完成对Excel各类编程操作

Spire.XLS for WPF

Spire.XLS for WPF是一款强大的专业Excel组件,让开发人员能够用他们的WPF应用操作Excel文件。

Spire.XLS for Silverlight

Spire.XLS for Silverlight是一款在Silverlight平台上操作Excel文档的专业组件。

Spire.XLS Pack

独立使用的Excel工具套包。

Spire.XLS for Java

 Spire.XLS for Java让开发人员无需Microsoft Excel即可处理Excel

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP