一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出

今天我们使用NPOI类库读写xlsx文件,
最终实现的效果如图所示

从太平洋官网下载相应的类库,大概4~5MB,不要从github下载,下载慢,且高达120MB,国内有个码云同样可以下载,速度可能快一点,可以使用git命令克隆下来,速度应该也慢,

下载加入自己的项目工程里面,添加引用即可,引用那几个文件即可


注意添加的是dll类库文件,其他不要,添加引用即可,浏览到那几个文件,这样使用命名空间才不会报错,

Form1 添加几个控件 ,button ,label TextBox 等 listBox等
双击控件,直接写代码
业务逻辑比较小,但是涉及的知识点也不少,源码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NPOI;
using NPOI.SS.UserModel;namespace DemoExcel
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}private void PiliangBuSN(List<string> snList){foreach(string str in snList){string filepath = "C:\\IRT\\";if (!Directory.Exists(filepath)){Directory.CreateDirectory(filepath);}string filename = filepath + "\\" + str + "_#system-764#1_012524.xml";FileStream fs = File.Create(filename);fs.Close();StreamWriter sw = new StreamWriter(filename);string strNumber = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" +"<ns1:Boas=\"</ns1:XMLExport>\r\n" + "";sw.Write(strNumber);sw.Flush();sw.Close();}}List<string> listSn = new List<string>();private void button1_Click(object sender, EventArgs e){//string importExcelPath = "D:\\des.xlsx";string importExcelPath = this.textBox1.Text.ToString();if (this.textBox1.Text.Trim().Length==0){MessageBox.Show("请选择一个文件");return;}string exportExcelPath = "E:\\export.xlsx";IWorkbook workbook = WorkbookFactory.Create(importExcelPath);ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作薄IRow firstRow = (IRow)sheet.GetRow(0);//获取第一行int cellCount = firstRow.LastCellNum;//列数int rowCount = sheet.LastRowNum; //总行数//Console.WriteLine(rowCount);//Console.WriteLine(cellCount);listSn.Clear();for (int i = 1; i <= rowCount; ++i){IRow row = sheet.GetRow(i);if (row == null) continue;string demo =  row.GetCell(0).ToString();listSn.Add(demo);this.listBox1.Items.Add(demo);}PiliangBuSN(listSn);}private void button1_Click_1(object sender, EventArgs e){openFileDialog1.InitialDirectory = "C:\\";//注意这里写路径时要用c:\\而不是c:\openFileDialog1.Filter = "xlsx文件|*.xlsx|xls文件|*.xls|文本文件|*.*|C#文件|*.cs|所有文件|*.*";openFileDialog1.RestoreDirectory = true;openFileDialog1.FilterIndex = 1;if (this.openFileDialog1.ShowDialog()==DialogResult.OK){this.textBox1.Text = this.openFileDialog1.FileName.ToString();} }private void button3_Click(object sender, EventArgs e){this.listBox1.Items.Clear();}}
}

跟QT的思路差不多,包括代码,但是这种写法应该更简单更优雅的,不得不承认C#是一种安全,优雅,高效的编程语言.

一文搞定C#关于NPOI类库的使用读写Excel以及io流文件的写出相关推荐

  1. 一文搞定Qt读写excel以及qt读写xml数据

    一文搞定Qt读写excel以及qt读写xml数据 最终的实现效果图 RC_ICONS = logo.ico .pro文件同级目录下加入 logo.ico 图标文件,运行文件,文件的图标就被写入软件 u ...

  2. php带参数单元测试_一文搞定单元测试核心概念

    基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...

  3. 【Python基础】一文搞定pandas的数据合并

    作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...

  4. 一文搞定Swing和Qt按钮和文本框的创建

    一文搞定Swing和Qt按钮和文本框的创建 Qt的截图 java的 源码 package com.lujun;import java.awt.Container;import javax.swing. ...

  5. 一文搞定 Spring Data Redis 详解及实战

    转载自  一文搞定 Spring Data Redis 详解及实战 SDR - Spring Data Redis的简称. Spring Data Redis提供了从Spring应用程序轻松配置和访问 ...

  6. 一文搞定面试中的二叉树问题

    一文搞定面试中的二叉树问题 版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重 ...

  7. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿

    一文搞定 Linux 压缩.解压哪些事儿 Linux 常用的解压和压缩命令如下: 1..tar # 解包 tar xvf FileName.tar # 打包 tar cvf FileName.tar ...

  8. 一文搞定Matplotlib 各个示例丨建议收藏

    摘要:Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用 ,Matplotlib也是深度学习的常用绘图库,主要是将训练的成果进行图形化,因为这样更直观,更方便发现训练中的 ...

  9. 一文搞定B站弹幕生成云图

    一文搞定B站弹幕生成云图 最近学了词云图, 感觉非常有趣,我们做一些图试试, 最近我们遭受了新冠疫情 , 关于这个点,去看看b站弹幕都在说什么? B站的弹幕接口 直接从B站某视频源中找半天没找到弹幕的 ...

最新文章

  1. 2020年社招面试技巧总结!
  2. Redis基础教程第7节 - Set
  3. MVC4.0网站发布和部署到IIS7.0上的方法【转:http://www.th7.cn/Program/net/201403/183756.shtml】...
  4. SSIS数据转换组件_复制转换、数据转换、行计数
  5. html设置table border,用css来设置table的border
  6. python中if else语句用法_Python中if-else语句的多种写法
  7. mysql 如何磁阵_Raid教程 全程图解手把手教你做RAID
  8. HTML结构:自我简介页面
  9. 快节奏多人在线游戏网络入门系列教程(4):爆头!滞后补偿
  10. 思科为计算机配置ip命令,cisco路由器配置命令练习
  11. Zigbee 协议栈网络管理
  12. 《AP音频分析仪的使用》
  13. UE4TTS文字转语音功能。
  14. d3.js-V3制作简单的飞线图
  15. WS4665D-8/TR单通道负载开关WILLSEM封装DFN2x2-8L
  16. 基于MATLAB APP Designer 和 Python 的音视频剪辑
  17. 学生管理系统的设计与实现—后端代码
  18. 测试人员如何管理项目与风险预警
  19. OpenCV中Viz模块的安装(VS2015)
  20. win11抢先版体验

热门文章

  1. postfix 部署ssl后还是25_宝塔面板的邮局管理器Postfix无法启动解决办法
  2. python内核_python内核_python内核语言_python版本内核 - 云+社区 - 腾讯云
  3. chrome postman插件_一款 Postman 的开源替代品: Postwoman
  4. java避免内存泄露_Java防止非静态内部类内存泄漏
  5. python无效的类字符串_Python不规范的日期字符串处理类
  6. mysql 并发_Mysql事务,并发问题,锁机制
  7. 智慧政务解决方案(28页)pdf_智慧政务解决方案在政务服务大厅中的应用
  8. PHP秒杀截流原理,流量新大陆:巧借PC、移动端评论截流,让精准流量“爆起来”...
  9. 用NSoup解析HTML
  10. 自我总结和学习表单提交的几种方式 (一)