C# NPOI读取excel如何获取工作表sheet名字和个数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# NPOI读取excel如何获取工作表sheet名字和个数?相关的知识,希望对你有一定的参考价值。
是使用NPOI的方式,获取要读取的excel表中存在的sheet,还要得到这些工作表的名字
public static DataTable GetExcelTable(string excelFilename)string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=0;Jet OLEDB:Engine Type=35;Extended Properties=Excel 8.0;Persist Security Info=False",excelFilename);
DataSet ds = new DataSet();
string tableName;
using (System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(connectionString))
connection.Open();
DataTable table = connection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
tableName = table.Rows[0]["Table_Name"].ToString();
string strExcel = "select * from " + "[" + tableName + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connectionString);
adapter.Fill(ds, tableName);
connection.Close();
return ds.Tables[tableName];
具体如下:
1、简介
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
2、汇编程序
汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
3、执行原理
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
参考技术A framework 2.0 版本的用法using (FileStream sr = new FileStream("test.xls", FileMode.OpenOrCreate))
//根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
HSSFWorkbook workbook = new HSSFWorkbook(sr);
int x = workbook.Workbook.NumSheets;
List<string> sheetNames = new List<string>();
for (int i = 0; i < x; i++)
sheetNames.Add(workbook.Workbook.GetSheetName(i));
参考技术B HSSFWorkbook wb = new HSSFWorkbook(filepath);
int i=wb.NumberOfSheets; 这个是总共的个数
NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0); 获取指定的那一个本回答被提问者和网友采纳 参考技术C public static DataTable GetExcelTable(string excelFilename)
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=0;Jet OLEDB:Engine Type=35;Extended Properties=Excel 8.0;Persist Security Info=False",excelFilename);
DataSet ds = new DataSet();
string tableName;
using (System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(connectionString))
connection.Open();
DataTable table = connection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
tableName = table.Rows[0]["Table_Name"].ToString();
string strExcel = "select * from " + "[" + tableName + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connectionString);
adapter.Fill(ds, tableName);
connection.Close();
return ds.Tables[tableName];
参考技术D using NPOI;
using NPOI.HPSF;
using NPOI.HSSF;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.POIFS;
using NPOI.Util;
然後再照NPOI里的范例就可以读进来了
PS.EXCEL里最好全部为"文字".
C#里使用NPOI创建EXCEL文件的简单方法
C#里使用NPOI创建EXCEL文件的简单方法
在前面使用ExcelDataReader库时,它只能读取EXCEL文件,而不能创建和写入EXCEL文件。
对于一些客户要求生成EXCEL文件时,就不能满足这个需求了。
比如使用CSV文件时,如果修改一下数据,再保存数据时,EXCEL就会提示一个格式不对的窗口,并且不能手动关闭。
这是EXCEL软件为了自己的利益,强制干这些事情,不愿意提供一个关闭的选项。
这样让客户保存数据,就非要多点击一次鼠标,导致客户严重不满意,强烈要求我们修改软件的格式。
这时候我们就只能使用EXCEL的文件格式,而不能使用CSV的格式了。
另外一种情况,也是需要使用EXCEL的格式。比如需要把数据某些列显示为红色,或者表格有一些格式要求。或者需要有图表。
因此,如果没有上述的情况下,使用CSV是更加方便,文件体积更加短小,软件之间进行数据交互最方便,这是CSV作为首选的方式。
如果避免不了上述的情况,就需要使用EXCEL的格式了。
使用EXCEL一般来说,也有两种方式,一种是使用EXCLE软件自己带的COM组件的方式,这种方式需要安装OFFICE软件,这样方式就比较麻烦了,
需要每一台使用的电脑都安装OFFICE,这样软件成本就会急剧上升,导致产品竞争力下降。这种方式也会导致一种情况,就是当用户正
以上是关于C# NPOI读取excel如何获取工作表sheet名字和个数?的主要内容,如果未能解决你的问题,请参考以下文章