遍历指定文件夹内所有的xls,首先获取所有文件夹内的xls文件路径,使用VBA脚本生成到一个xls文件中,VBA脚本如下:

Sub filelist()
Dim MyName, Dic, Did, i, t, F, TT, MyFileName'On Error Resume NextSet objShell = CreateObject("Shell.Application")Set objFolder = objShell.BrowseForFolder(0, "选择文件夹", 0, 0)If Not objFolder Is Nothing Then lj = objFolder.self.Path & "\"Set objFolder = NothingSet objShell = Nothingt = TimeSet Dic = CreateObject("Scripting.Dictionary")    '创建一个字典对象Set Did = CreateObject("Scripting.Dictionary")Dic.Add (lj), ""i = 0Do While i < Dic.CountKe = Dic.keys   '开始遍历字典MyName = Dir(Ke(i), vbDirectory)    '查找目录Do While MyName <> ""If MyName <> "." And MyName <> ".." ThenIf (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then    '如果是次级目录Dic.Add (Ke(i) & MyName & "\"), ""  '就往字典中添加这个次级目录名作为一个条目
                End IfEnd IfMyName = Dir    '继续遍历寻找
        Loopi = i + 1LoopDid.Add ("文件清单"), ""    '以查找D盘下所有EXCEL文件为例
    For Each Ke In Dic.keysMyFileName = Dir(Ke & "*.xls")Do While MyFileName <> ""Did.Add (Ke & MyFileName), ""MyFileName = DirLoopNextFor Each Sh In ThisWorkbook.WorksheetsIf Sh.Name = "XLS文件清单" ThenSheets("XLS文件清单").Cells.DeleteF = TrueExit ForElseF = FalseEnd IfNextIf Not F ThenSheets.Add.Name = "XLS文件清单"End IfSheets("XLS文件清单").[A1].Resize(Did.Count, 1) = WorksheetFunction.Transpose(Did.keys)TT = Time - tMsgBox Minute(TT) & "分" & Second(TT) & "秒"
End Sub

读取VBA生成xls文件中存放的路径列,并传递给遍历方法

        [TestMethod]public void GetXlsTest(){WriteLog("error", "info", "query start");IWorkbook workbook = WorkbookFactory.Create("C:\\Users\\Administrator\\Desktop\\file-list.xlsx");ISheet sheet = workbook.GetSheetAt(0);for (int i = 1; i <= sheet.LastRowNum + 1; i++){var row = sheet.GetRow(i);if (row != null){ICell cell = row.GetCell(0);if (cell != null){FindXlsSheetData(cell.ToString());}}}WriteLog("error", "info", "query end");}

遍历方法接收到路径,开始遍历每个xls中的sheet

        private void FindXlsSheetData(string path){try{if (File.Exists(path)){IWorkbook workbook = WorkbookFactory.Create(path);for (int s = 0; s < workbook.NumberOfSheets; s++){ISheet sheet = workbook.GetSheetAt(s);for (int i = 1; i <= sheet.LastRowNum + 1; i++){var row = sheet.GetRow(i);if (row != null){StringBuilder line = new StringBuilder();line.Append(path + ",");for (int j = 0; j < row.LastCellNum; j++){ICell cell = row.GetCell(j);if (cell != null){line.AppendFormat("{0}{1}", cell.ToString().Trim(), ",");}}int sheetIndex = s + 1;WriteLog("gk", "sheet" + sheetIndex + "-", line.ToString().TrimEnd(','));}}}}}catch (Exception ex){WriteLog("error", "info", path + " query error " + ex.Message);}}

NPOI遍历excel表格相关推荐

  1. python3遍历电子表格_用openpyxl遍历excel表格

    Python的openpyxl模块,提供了对excel表格的读写操作接口.本文介绍使用openpyxl来遍历excel表格. openpyxl支持Excel 2010 xlsx/xlsm/xltx/x ...

  2. 【C# NPOI解析excel表格】

    安装 NPOI 库 首先,需要从 NuGet 上安装 NPOI 库.可以通过 Visual Studio 的 NuGet 包管理器或者通过 Package Manager Console 来安装,具体 ...

  3. java遍历excel 表格

    package 工具类;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.poi.hssf.usermodel ...

  4. 使用C#、NPOI生成Excel表格和统计图表

    首先创建一个带有图表的Excel模板,如下 : 接下来引用NPOI的dll,直接用NuGet安装,后面别忘了引用命名空间哦. 模板有了之后就可以直接上代码了 //信息类 public class In ...

  5. 用NPOI、C#操作Excel表格生成班级成绩单

    在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置.颜色设置.单元格合并.数值计算.页眉页脚等等. 这里准备使用NPOI生成一个班级成绩单Exce ...

  6. 字典写入excel_使用Python扫描邮件/填写Excel表格实现办公自动化

    题图:希腊德尔斐(Delphi)神庙遗址.传说此地原为巨蟒Python盘踞,阿波罗来到此地射杀Python后建立起神庙,成为古希腊的精神圣地. 关键词:Python, 邮件扫描, yaml配置文件,邮 ...

  7. C#使用NPOI进行存在重复的excel表格的数据统计

    前言 从excel表格统计数据,可能会出现同一字段名的数据需要累加的情况,本文使用List集合存储数据:使用C#的NPOI类进行实现如下 一.首先需要excel文件的导入导出,链接如下: excel文 ...

  8. pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容

    如何用python将数据写入excel表格 # 需 xlrd-0.9.2  xlutils-1.7.1 这两个模块 from xlwt import Workbook, Formula import  ...

  9. 使用NPOI将数据库里信息导出Excel表格并提示用户下载

    使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的 简单的代码如下 1 //mvc项目可以传多个id以逗号相隔的字符串2 public ActionRes ...

  10. Asp.net C# 遍历Excel中的表格名称

    Asp.net C# 遍历Excel中的表格名称 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data ...

最新文章

  1. 客快物流大数据项目(十四):DockerFile介绍与构建过程解析
  2. Spring @Autowired和@Resource
  3. pymysql(part2)--pymysql使用流程
  4. 多线程之继承Thread类及多线程内存分析
  5. iOS 技术官方 QA
  6. 作者:郭鹏(1984-),男,博士,贵阳学院经济管理学院讲师。
  7. Google Colab使用学习笔记
  8. sharepoint开发流水账--sharepoint弹出窗体
  9. 知识点1--认识SSM框架并准备项目
  10. 使用PE安装纯净版win7
  11. 【python】ssim原理简介及代码实现
  12. 基于视觉的移动平台运动目标检测
  13. 在线pdf转换成word文档的方法
  14. 【读书笔记】RevMiner:RevMiner: An Extractive Interface for Navigating Reviews on a Smartphone
  15. IDEA如何删除项目-小白实操记录
  16. java 线程卡住_Java程序卡住及排查
  17. 各种版本谷歌浏览器下载
  18. yolov5调用ip摄像头时出现的问题
  19. gawk linux,精通awk系列(1):安装新版本的gawk
  20. java判断一个字符串中有几个字母和数字

热门文章

  1. php元换成万元,元换算成万元公式(元换算成万元换算器)
  2. android studio必须装c盘吗,Android Studio不占用c盘配置
  3. speedoffice表格怎么插入文本框?
  4. [生存志] 第11节 历代大事件概览 春秋
  5. t检验临界值表中的n是什么_t检验临界值分布表
  6. TIFF图像文件格式与实例分析
  7. 基于51单片机的DHT11传感器
  8. fast无线路由器设置服务器,迅捷(FAST)FW300R无线路由器怎么设置
  9. html自由变换图形,ps自由变换的快捷键是什么?
  10. 自研DCI网络路由交换协议DCIP-白牌交换机时代的企业网络