C#使用NPOI将txt文本批量转为excel文件
1.下载NPOI
NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。可以在没有安装Office的情况下对Word或Excel文档进行读写操作。
可从NPOI官网下载,也可以直接下载我上传的NPOI.dll文件(其实这里我是不想收取积分的,但是上传时最少要输入1个积分,无奈)。
2 .引用NPOI.dll文件
在引用中添加NPOI.dll,在命名空间前引用:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
3.代码实现
(1)获取待转换的txt文件集。
本文以下图所示的文件为例进行讲解:
txt文本内容形式如下:
获取txt文件夹下的文件列表:
DirectoryInfo theFolder = new DirectoryInfo(@"C:\Users\Bin\Desktop\txt\");
FileInfo[] files = theFolder.GetFiles();
(2)遍历,对每一个txt进行下面的转换
1)实例化HSSFWorkbook类,调用该类的CreateSheet方法创建一个工作簿。
HSSFWorkbook hssfworkbook = new HSSFWorkbook();
Sheet sheet = hssfworkbook.CreateSheet("sheet1");
2)读取文本文件的所有行,每一行作为excel文件中的一行数据,然后将每一行数据用“@”符号分割,分割后的字符串作为对应单元格的值写入工作簿中。
//读取指定txt文件中的所有行数据,txtFullPath为txt文件的全路径(包括路径和带后缀的名称,如:C:\Users\Bin\Desktop\txt\八里河景区.txt)
string[] txtLines = File.ReadAllLines(txtFullPath);
for (int i = 0; i < txtLines.Length; ++i)
{//将txt文本中的一行数据用@分割string[] line = txtLines[i].Split('@');//创建行Row dataRow = sheet.CreateRow(i);for (int j = 0; j < line.Length; j++){//创建列,并写入值Cell cell = dataRow.CreateCell(j);cell.SetCellValue(line[j]);}
}
3)将创建的工作簿写入到指定路径下的excel文件中(如果该文件不存在将会新建,如果存在则会覆盖)。
//打开指定的xls文件,excelFullPath为待转换excel文件的全路径(包括路径和带后缀的名称,如:C:\Users\Bin\Desktop\txt\八里河景区.xls)
using (FileStream fs = File.OpenWrite(excelFullPath))
{hssfworkbook.Write(fs);
}
上面是一个大致的思路以供参考。完整代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
namespace txts2excels
{class Program{static void Main(string[] args){string txtFullPath;string excelFullPath;DirectoryInfo theFolder = new DirectoryInfo(@"C:\Users\Bin\Desktop\文本\");FileInfo[] files = theFolder.GetFiles();for (int i = 0; i < files.Length; i++){//获取txt文本全路径txtFullPath = files[i].FullName;//指定转为excel文件的全路径,这里设置为txt文本所在的文件夹下,名字与对应的txt文件一样excelFullPath = files[i].FullName.Replace("txt", "xls");//开始转换txt2excel(txtFullPath, excelFullPath);Console.WriteLine(files[i].Name + "转换成功!");}Console.WriteLine("全部转换成功!");Console.ReadKey();}/// <summary>/// 将指定路径下的txt文件转换为excel文件(其中txt中每一行表示excel中一行数据,每一行用“@”符号分割成相应的列)/// </summary>/// <param name="txtFullPath">txt文件的全路径</param>/// <param name="excelFullPath">存储转换后excel文件的全路径</param>public static void txt2excel(string txtFullPath, string excelFullPath){HSSFWorkbook hssfworkbook = new HSSFWorkbook();Sheet sheet = hssfworkbook.CreateSheet("sheet1");string[] txtLines = File.ReadAllLines(txtFullPath);for (int i = 0; i < txtLines.Length; ++i){string[] line = txtLines[i].Split('@');Row dataRow = sheet.CreateRow(i);for (int j = 0; j < line.Length; j++){Cell cell = dataRow.CreateCell(j);cell.SetCellValue(line[j]);}}using (FileStream fs = File.OpenWrite(excelFullPath)) //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!{hssfworkbook.Write(fs); //向打开的这个xls文件中写入mySheet表并保存。}}}
}
运行结果如下:
C#使用NPOI将txt文本批量转为excel文件相关推荐
- python在当前目录创建txt文件-python根据txt文本批量创建文件夹
前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...
- python怎么创建txt文件啊_python根据txt文本批量创建文件夹
前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...
- 批量将txt文件转为excel文件
python萌新,记录一下,自己做项目时遇到需批量将txt文件转为excel文件. 代码如下: `# coding:utf-8 import pandas as pd import os def ge ...
- Python将txt文本批量转化为xlsx格式
Python将txt文本批量转化为xlsx格式 # # -*- encoding: utf-8 -*- # # -------------------------------------------- ...
- TXT文本数据转换成Excel表格
TXT文本数据转换成Excel表格 打开EXCEL-数据--获取外部数据--导入文本文件--找到文件点导入--选择分隔符号--下一步--(逗号打勾,空格打勾,其他打勾)
- ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具
ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具 简介 ExcelToOracle 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver ...
- excel表格末尾添加一行_教你使用Python批量读写excel文件
当面对成百上千个excel文件,需要重复读写时,你会不会很头大呢? 与其花费好几天去做这些繁琐无意义的操作,不如学学python如何批量读写excel文件,几分钟就能搞定一整天的活! 使用xlrd库读 ...
- 如何批量合并Excel文件和工作表 - Excel合并器使用教程
Excel是人们用于创建日常工作表和统计信息的最流行的工具,在我们工作中经常接触到Excel的XLSX和XLS格式文件.不少朋友应该有时会发现,管理太多的Excel工作表和文件是一件头疼的事情,经常需 ...
- 怎么批量取消Excel文件中的上下标
今天跟大家分享一下怎么批量取消Excel文件中的上下标 1.打开Excel文件 2.选中要处理的单元格区域 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说.) ...
最新文章
- c语言删除文件中的结构体_C语言插入、删除、更改文件内容
- IDC数据中心机房该如何节能
- 2012年度IT博客大赛50强报道:马博峰
- 你有没有靠谱的基因?一个人靠不靠谱,其实就看这三点:“凡事有交代,件件有着落,事事有回音。”...
- 揭开 Python 内存分配时的小秘密!
- Nginx 读写分离详解
- 视频教程-IP地址划分(CCNA魔鬼训练营系列)-思科认证
- 红外接收电路自己制作,我用过的
- Linus 没空实现的功能,开发者做到了:苹果 M1 Mac 成功运行原生 Linux!
- 【转载】Altera FPGA使用通用SPI Flash(代替EPCS的方法)
- 3C数码行业供应商管理方案——与供应商结为“成长共同体”-数商云
- 功率谱密度的相关推导以及Python实现
- 未来十年最紧缺的职业
- 零基础入门microbit教程
- 完整的机器学习_加州房价预测
- 一台电脑寿命一般几年?
- Android手机如何修改DPI触发平板模式
- 正则表达式的.*?不包含空格(解决办法)
- Method findById should have no parameters
- matlab飞机飞行