F# 如何在F中使用NPOI逐行获取.xls数据#
我试图解析一个.xls文件,需要逐行收集所有数据。我可以打一个单独的手机F# 如何在F中使用NPOI逐行获取.xls数据#,f#,npoi,F#,Npoi,我试图解析一个.xls文件,需要逐行收集所有数据。我可以打一个单独的手机 let example =sheet1.GetRow(5).GetCell(1)|> string 我试图弄清楚如何使用递归函数从第5行到excel工作表末尾的每一行获取数据,除非有一行没有值,然后我想停止。我该怎么做?我来自python背景,用函数式语言思考有点挑战性 提前感谢您的帮助。您可以使用类型提供程序读取xls和xlsx文件,并将数据作为序列处理。您可以跳过前5行,然后以与序列相同的方式访问其余行,使用标
let example =sheet1.GetRow(5).GetCell(1)|> string
我试图弄清楚如何使用递归函数从第5行到excel工作表末尾的每一行获取数据,除非有一行没有值,然后我想停止。我该怎么做?我来自python背景,用函数式语言思考有点挑战性
提前感谢您的帮助。您可以使用类型提供程序读取xls
和xlsx
文件,并将数据作为序列处理。您可以跳过前5行,然后以与序列相同的方式访问其余行,使用标题名作为字段名。如果第一个单元格为空,则可以使用seq.takeWhile
停止读取行:
type TheFile = ExcelFile<"SomeFile.xls">
let file = new TheFile()
let rows = file.Data
|> Seq.skip 5
|> Seq.takeWhile (fun row->not String.IsNullOrWhitespace row.SomeName)
|> Seq.map (fun row->row.OrderTotal......0
...
键入file=ExcelFile
let file=new TheFile()
让rows=file.Data
|>序号5
|>Seq.takeWhile(趣味行->非String.IsNullOrWhitespace行.SomeName)
|>Seq.map(趣味行->行订单总计……0
...
字段可以是不要使用14年前过时的
xls
格式作为初学者。改用xlsx
格式。自2006年以来的所有Excel版本都使用xlsx
,这是一种定义良好的基于XML的格式。谷歌文档和Office Online(显然)也是如此。如果使用xlsx
和更小的文件大小,则兼容性问题会少得多。xlsx
文件是一个包含XML文档的ZIP包,遵循开放式XML规范,而不是使用NPOI。您可以使用ExcelDataReader,通过IDataReader以记录的形式读取数据,甚至加载所有工作表数据表中的s表我正在分析一个仅在.xls中可用的报表,因此我无法更改格式。我还只希望从每个生成的报表中获得某些值,因此我认为ExcelDataReader可能无法与NPOI一样适合它。在这个问题中,您说您希望跳过前5行,然后一直读到最后,或者直到遇到错误为止n空行。您可以通过调用Read 5次来跳过。之后,通过使用序列生成器(我刚通过谷歌搜索找到),我以前没有想过用这种方法。您可能可以使用IsDbNull
或检查空字段来检测中的空行,而条件本身您想过使用它吗?尽管有一些r在登录页中引用Interop,而不是Interop您是什么意思?该软件包位于并支持.NET Standard 2.0和.NET Core 2.0。如果标题仅出现在第5行,您将如何执行?在这种情况下,提供程序似乎不会生成类型。