MemoryStream导出 Excel文件

本文介绍了MemoryStream作为内存流在系统内存操作中的应用,对比了它与FileStream的区别。强调了MemoryStream在提高性能和速度上的优势,特别是在文件操作如导出Excel时的作用。通过示例代码展示了如何利用MemoryStream将DataTable转换并保存为Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到了 MemoryStream这个 流操作
百度了一下 简单区别了一下和FileStream的区别:
简单介绍一下MemoryStream

MemoryStream是内存流,为系统内存提供读写操作,由于MemoryStream是通过无符号字节数组组成的,可以说MemoryStream的性能可以

算比较出色,所以它担当起了一些其他流进行数据交换时的中间工作,同时可降低应用程序中对临时缓冲区和临时文件的需要,其实MemoryStream

的重要性不亚于FileStream,在很多场合我们必须使用它来提高性能

MemoryStream和FileStream的区别

前文中也提到了,FileStream主要对文件的一系列操作,属于比较高层的操作,但是MemoryStream却很不一样,它更趋向于底层内存的操作,这样

能够达到更快的速度和性能,也是他们的根本区别,很多时候,操作文件都需要MemoryStream来实际进行读写,最后放入到相应的FileStream中,

不仅如此,在诸如XmlWriter的操作中也需要使用到MemoryStream提高读写速度

于是 我就举个给大家 也是比较常用的 就是MemoryStream导出 Excel文件

filestream需要头文件system.IO;
主要代码是:
SaveFileDialog save = new SaveFileDialog();
save.Filter = “EXCEL|*.xls”;
if (save.ShowDialog() == DialogResult.OK)
{
save.RestoreDirectory = true;
string fileName = save.FileName;
DataTable table = dy.copy(); //dy是table类型且有内容的表
saveTofle(RenderToExcel(table, “sdf”), fileName);

            }   //RenderToExcel(table, "sdf")返回的是MemoryStream类型


    private void saveTofle(MemoryStream file,string fileName)
    {
        using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write))
        {
            byte[] buffer = file.ToArray();//转化为byte格式存储
            fs.Write(buffer, 0, buffer.Length);
            fs.Flush();
            buffer = null;
        }//使用using可以最后不用关闭fs 比较方便
    }
    接下里就是RenderToExcel函数   
    需要头文件
    using NPOI.HSSF.UserModel;
    using NPOI.SS.UserModel;
    代码是:


            public static Memo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值