C#中导出百万级Excel只需几秒除了NPOI还可以这样

2023-11-09

场景

Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106423452

之前在使用NPOI进行导出Excel时遇到百万级别的可以采用SXSSFWorkbook的方式。

但是速度还是很慢。但是有点是导出的是严格意义上的Excel,即可以设置正常的多sheet页以及能设置每个Cell的格式等。

但是如果数据量很大只求能导出数据作为备份,不对格式等有严格的要求,可以采用文件流的方式快速导出。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载

实现

为了能构建导出的数据,首先新建一个对象类

public class DataItem
    { 
        public int Age { get; set; }  
        public string Name { get; set; }  
        public string Address { get; set; } 
        public int Sex { get; set; } 
        public DateTime Birth { get; set; } 
    }

然后进入此页面的代码中,先构建一部分导出的数据。

//数据
        List<DataItem> ItemList = new List<DataItem>()
        {
            new DataItem() {Name = "霸道",Age = 24,Address = "中国",Sex = 1,Birth = DateTime.Now},
            new DataItem() {Name = "流氓",Age = 25,Address = "北京",Sex = 0,Birth = DateTime.Now},
            new DataItem() {Name = "气质",Age = 26,Address = "上海",Sex = 0,Birth = DateTime.Now},
            new DataItem() {Name = "程序猿",Age = 27,Address = "青岛",Sex = 1,Birth = DateTime.Now},
        };

然后在按钮的点击事件中

private void button6_Click(object sender, EventArgs e)
        {
            try
            {
                //要导出的csv文件的存放位置
                string fullPath = System.IO.Path.Combine(@"D:\", "badao.xls");
                FileInfo fi = new FileInfo(fullPath);
                if (!fi.Directory.Exists)
                {
                    fi.Directory.Create();
                }
                FileStream fs = new FileStream(fullPath, System.IO.FileMode.Create, System.IO.FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
                StringBuilder data = new StringBuilder();
 
                //写出列名称-第一行
                data.Append("姓名,年龄,地址,性别,生日");
                //换行
                sw.WriteLine(data);
 
                //构建大数据量
                List<DataItem> bigData = new List<DataItem>();
                for (int i = 0; i < 1000000; i++)
                {
                    DataItem item = new DataItem();
                    item.Name = "霸道" + i;
                    item.Age = i;
                    item.Address = "青岛" + i;
                    item.Sex = i;
                    item.Birth = DateTime.Now;
                    bigData.Add(item);
 
                }
 

 
                //写出各行数据
                foreach (DataItem item in bigData)
                {
 
                    data = new StringBuilder();
 
                    data.Append(item.Name);
                    data.Append(",");
                    data.Append(item.Age);
                    data.Append(",");
                    data.Append(item.Address);
                    data.Append(",");
                    data.Append(item.Sex);
                    data.Append(",");
                    data.Append(item.Birth);
                    data.Append(",");
                    //换行
                    sw.WriteLine(data);
 
                }
                //关闭
                sw.Close();
                fs.Close();
                MessageBox.Show("导出成功");
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                MessageBox.Show("导出失败:"+ex);
            }
           
        }

但是这样导出的数据在使用Excel打开时会有提示,点击是就能打开

点击是后正常打开

 

https://www.cnblogs.com/badaoliumangqizhi/p/13091438.html

https://recomm.cnblogs.com/blogpost/13091438

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#中导出百万级Excel只需几秒除了NPOI还可以这样 的相关文章

  • C# web端 NPOI导出Excel详解

    最近的项目需求 xff0c 需要将SqlServer数据库中的数据导出到Excel中 xff0c 导出excel方式有很多 xff0c 其中一种方式是使用NPOI xff0c NPOI具体是什么 xff0c 可以参考博客NPOI使用手册 接
  • C# web端 NPOI导出Excel详解

    最近的项目需求 xff0c 需要将SqlServer数据库中的数据导出到Excel中 xff0c 导出excel方式有很多 xff0c 其中一种方式是使用NPOI xff0c NPOI具体是什么 xff0c 可以参考博客NPOI使用手册 接
  • C#中导出百万级Excel只需几秒除了NPOI还可以这样

    场景 Winform中通过NPOI导出Excel的三种方式 HSSFWorkbook XSSFWorkbook SXSSFWorkbook 附代码下载 https blog csdn net BADAO LIUMANG QIZHI arti
  • C# NPOI写excel文件,设置某个单元格为自动筛选

    https blog csdn net qq 40467670 article details 118102078 如标题所示 附上几行代码 HSSFWorkbook workbook new HSSFWorkbook 创建工作表 var
  • WIN10操作系统 Visual Studio 2017 C# ASP.net Web 简单接口+MySQL数据库+NPOI导出到EXCEL开发、发布及部署到局域网详细教程(一)

    本文利用Visual Studio 2017 C 编写一个简单的WEB程序发布和部署到局域网内 目的是实现 在局域网内任意一台未安装OFFICE办公软件的电脑上打开浏览器后在地址栏输入IP地址和端口号 即可链接到WEB网页 点击 导出到EX
  • NPOI 单元格设置边框

    很多表格中都要使用边框 本节将为你重点讲解NPOI中边框的设置和使用 边框和其他单元格设置一样也是调用ICellStyle接口 ICellStyle有2种和边框相关的属性 分别是 边框相关属性 说明 范例 Border 方向 边框类型 Bo
  • C# 创建/修改/读取 .xlsx 文件

    我正在寻找一种在 C 中创建 修改 读取 xlsx 文件的方法 而无需安装 Excel 或在服务器上创建文件 然后再提供给用户下载 我找到了NPOIhttp npoi codeplex com 看起来不错 但支持 xls 而不是 xlsx
  • 如何通过 angularJS 和 webaAPI2 下载内存流对象

    我有一个正在使用的项目NPOI从我的 Angular 应用程序生成 Excel 文档 我从我的 Angular 服务向我的 webapi 控制器发出调用 如下所示 function exportReportToExcel report re
  • WCF MemoryStream 返回类型是否可以写入 Http Response 对象以作为 Excel 文件下载?

    我构建了一个解析应用程序 它读取 xml 文件并使用以下命令填充 Excel 工作簿NPOI http npoi codeplex com 图书馆 最初 我将其作为 net Web 应用程序的一部分 从 NPOI 获取 MemoryStre
  • 如何使用 npoi 将图像放置在一个单元格中

    我在用着npoi http npoi codeplex com documentation生成 Excel 文档 我需要将图像添加到单元格中 使用以下代码我可以将图像插入到我的文档中 然而图像跨越了许多单元格 我怎样才能确保图像正好适合一次
  • C#。 NPOI 2.0 将 xlsx 日期单元格导入到 DataTable

    我尝试使用 NPOI 2 0 库将 xlsx 文件转换为 DataTable 格式 没关系 但我在转换为字符串日期单元格时遇到问题 当我尝试使用像 row GetCell j ToString 这样的构造时 它抛出异常 无法从文本单元格获取
  • 使用 NPOI 将图像添加到 Word docx 文件

    我开始使用 NPOI 创建 Word 文档 并且尝试将简单的图像添加到文档中 但它没有显示 不过我可以让文字显示得很好 这是我的代码 var wDoc new XWPFDocument var bytes File ReadAllBytes
  • 使用 NPOI 将 Excel 单元格区域格式化为表格

    我正在使用 NPOI 来操作 Excel xlsx 文件数据和格式 我想知道是否有一种方法可以将单元格范围格式化为表格 something like ITable table worksheet FormatAsTable A1 C4 在互
  • NPOI 数据格式

    我正在使用 NPOI v1 2 3 导出网格 但在使单元格格式正常工作时遇到问题 我有一个类将对象列表导出到 XLS 文件 为每个对象创建一行 并为每个配置的属性添加一个单元格 可以在每个属性级别设置单元格数据格式 我读过您不应该为每个单元
  • 使用 NPOI,如何返回已由 Excel 格式化的单元格值?

    Using NPOI https npoi codeplex com 是否有任何内置的可能性来格式化单元格值 特别是数字和日期值 因为它已经 如果不是 最好的实施方式是什么 我想到了从 Excel 格式字符串到 C 格式字符串的格式字符串转
  • 如何重新计算单元格的公式?

    我的代码设置了很多单元格值 最后 在生成 Excel 文件之前需要评估每个单元格中的公式 对于大多数床单来说 一切进展顺利 但是 有一个单元格抛出异常 该单元格正在计算其后面的一系列单元格以及其他工作表中的参考单元格的平均值 我猜当第一个单
  • NPOI 不会更改单元格的字体颜色

    我正在尝试有条件地更改单元格的字体颜色 这是我最后一次尝试 IWorkbook wb null using FileStream fileStream new FileStream path FileMode Open FileAccess
  • 如何使用 NPOI 设置 Excel 中的行高?

    如何使用 NPOI 在 C 中设置行高 为了指定列的宽度 我使用 XSSFSheet SetColumnWidth 但是单元格高度的命令是什么样的 尝试下面的方法 var row sheet CreateRow 0 row Height 1
  • 如何使用 NPOI 获取包含日期的单元格的值并保留原始格式

    我有一个使用 DevExpress 编辑的 Excel 文件 并且正在使用 NPOI 阅读 当我尝试以字符串形式获取日期单元格的值时 它不会保留原始值 例如 在 DevExpress 网格中我设置了这个值 2016 08 12 我想在字符串
  • NPOI像Excel一样插入行

    如何使用NPOI像excel一样插入行 Excel插入命令复制上一行的格式 Thanks static void InsertRows ref HSSFSheet sheet1 int fromRowIndex int rowCount s

随机推荐

  • linux top交叉编译_ARM Linux 交叉编译 工具链 制作攻略

    ARM Linux 交叉编译 工具链 制作攻略 2007 06 25 20 04 0 制作之前确保你的机子上有如下几个工具 bison flex build essential build essential 主要是用于提供GCC GLIB
  • 利用jawin完成调用window中dll的调用

    最近由于项目的特殊需求 我们必须在程序调用window的dll 开始我们用jni 后来由于调用的dll太多 而且很烦琐 所以 我们决定用开源的jawin调用 jawin 可以对dll中的方法进行调用 也可以调用com中的方法 内部还提供了一
  • vue 全局指令实现防止按钮重复点击 防抖

    vue 全局指令实现防止按钮重复点击 防抖 指令代码 通过为按钮设置disabled属性在3秒内阻止重复点击 设置定时器在3秒后移除disabled属性 export const preventClick inserted el bindi
  • B站 马士兵Python 入门基础版 - 课程笔记

    视频传送门 https www bilibili com video BV1wD4y1o7AS 记得三连 文章目录 print的规则 数字类型 类型转换 Python中的运算符 链式赋值 参数赋值 位运算符 运算符的优先级 程序的组织结构
  • 文本编辑框的右键菜单不可修改?

    最近写了个小工具 用来处理特定的文字编辑任务 编辑后的内容通过剪贴板复制到其他的程序中 全选 gt 复制 gt 切换到其他程序 gt 全选 gt 粘帖 这本是个极简单的操作过程 不过操作的次数多了 还是觉得不胜其烦 就想把这个操作在精简一下
  • RabbitMQ 报错:connection error; (reply-code=530, reply-text=NOT_ALLOWED - XXX(Hosts名) / not found)

    背景 项目使用了 Spring Cloud Bus RabbitMQ 作为消息代理 想要做到通过访问暴露的触发消息总线地址来达到开发人员变更 Gitee 上的配置文件后可以自动拉取更新的效果 但是访问暴露的触发消息总线地址后 RabbitM
  • 实时渲染学习(十)渲染加速算法总结

    参考博文 Real Time Rendering 3rd 提炼总结 十一 第十四章 游戏开发中的渲染加速算法总结 前言 本章主要介绍了一些加速渲染算法 个人认为了解这些加速技术还是很重要的 本章知识概览 常用空间数据结构 Spatial D
  • Shell编程规范及变量

    目录 一 Shell脚本编程概述 1 1Shell的作用 1 1 1Shell基本概念 1 1 2Shell脚本应用场景 1 1 3Shell作用 翻译官 1 1 4linux中有哪些Shell 1 1 4 为什么系统上合法的Shel1要写
  • 用于创建此对象的程序是 Equation。您的计算机尚未安装此程序或此程序无响应。 若要编辑此对象,请安装 Equation或确保 Equation中的任何对话框都已关闭

    用于创建此对象的程序是 Equation 您的计算机尚未安装此程序或此程序无响应 若要编辑此对象 请安装 Equation或确保 Equation中的任何对话框都已关闭 一 问题描述 在Word中打开公式编辑器mathtype时出现 用于创
  • Distcc

    由于通过google git提取的android源代码没有配置分布式编译 需要借助一些工具搭建一个分布式编译环境来提升android编译速度 下面的步骤是在centos 5 2上进行的 我们可以参考一下 1 安装distcc RPM包 rp
  • impala/spark/hive/presto常见的命令汇总

    1 impala spark常见的命令汇总 常见命令 impala spark sql create语句 CREATE TABLE IF NOT EXISTS my db student name STRING age INT contac
  • #pragma once 是什么意思?

    和头文件中用 ifndef A H define A H Here is code endif 效果类似 包含pragma once语句的文件只会被编译一次 表示在编译的时候 这个文件只被包含 include 一次 这样 可以减少整个编译过
  • PHP框架的基本原理以及选择标准

    PHP框架的原理 说到PHP框架 可能很多PHP新手会感到有些胆怯 其实 PHP框架也不是那么深不可测的 框架就是别人使用PHP基础只是为你写好了的东西 只是封装在一起 这就好比我们使用PHP的函数 函数都是已近写好了的 我们只要按照函数使
  • 图解LeetCode——1812. 判断国际象棋棋盘中一个格子的颜色(难度:简单)

    一 题目 给你一个坐标 coordinates 它是一个字符串 表示国际象棋棋盘中一个格子的坐标 下图是国际象棋棋盘示意图 如果所给格子的颜色是白色 请你返回 true 如果是黑色 请返回 false 给定坐标一定代表国际象棋棋盘上一个存在
  • C/C++

    文章目录 常见面试题目讲解 宏定义 数据声明 类型修饰符的使用总结 位操作 访问固定内存位置 参考 麦子学院 嵌入式C语言高级 C语言函数的使用 常见面试题目讲解 参考 嵌入式程序员应该知道的0x10个基本问题 常见面试题目讲解 宏定义 1
  • Java设计模式——装饰者模式

    装饰者模式 一 概述 装饰者模式 装饰器模式 是一种结构型模式 定义 在不改变现有对象结构的情况下 动态地给该对象增加一些额外职责 功能 的模式 装饰者 Decorator 模式中的角色 抽象构件 Component 角色 定义一个抽象接口
  • 7-44 求整数的位数及各位数字之和

    对于给定的正整数N 求它的位数及其各位数字之和 输入格式 输入在一行中给出一个不超过109的正整数N 输出格式 在一行中输出N的位数及其各位数字之和 中间用一个空格隔开 输入样例 321 输出样例 3 6 include
  • Tomcat流程图分析

    org apache catalina startup Bootstrap 启动类 初始化步骤 从server开始到service connector 后实现了lifecycle 接口 bootstrape init gt catelina
  • Protobuf下载和编译

    系列导航 一 Protobuf下载和编译 二 Protobuf在Java中的简单使用 一 简介 protobuf全称Google Protocol Buffers 是google开发的的一套用于数据存储 网络通信时用于协议编解码的工具库 是
  • C#中导出百万级Excel只需几秒除了NPOI还可以这样

    场景 Winform中通过NPOI导出Excel的三种方式 HSSFWorkbook XSSFWorkbook SXSSFWorkbook 附代码下载 https blog csdn net BADAO LIUMANG QIZHI arti