使用F#和Open XML SDK读取Excel文件中的单元格内容

数据工程师

我无法编译以下代码,这些代码是从C#转换而来的。

编译器产生了以下错误:错误FS0010:在实现文件中或此之前的结构化构造不完整。在这一点或其他标记之前或之前预期的不完整结构化构造。

// Assemblies
open System
open System.Linq
open System.Data
open System.Windows
open DocumentFormat.OpenXml // Also install DocumentFormat.OpenXml from nuget
open DocumentFormat.OpenXml.Packaging
open DocumentFormat.OpenXml.Spreadsheet
open Microsoft.Office.Interop.Excel


//Read the value of a single cell by string coordinates (Open XML SDK)
    let read_value_openxml file_path_and_name column row =
        let stream = new System.IO.FileStream(file_path_and_name, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)

        // Open the spreadsheet document for read-only access.
        let document = SpreadsheetDocument.Open(stream, false)

        // Retrieve a reference to the workbook part.
        let wbPart = document.WorkbookPart

        // Find the sheet with the supplied name, and then use that sheet object to retrieve a reference to the first worksheet.
        let firstSheet:Sheet = wbPart.Workbook.Descendants<Sheet>().First()
        let theSheet:Worksheet = ((WorksheetPart.wbPart.GetPartById(firstSheet.Id)).Worksheet

        // Retrieve a reference to the worksheet part.
        let wsPart = wbPart.GetPartById(firstSheet.Id)

        // Use its Worksheet property to get a reference to the cell whose address matches the address you supplied.
        let theCell = wsPart.Worksheet.Descendants<Cell>().Where(fun c -> c.CellReference = column + row).FirstOrDefault()

            // Return a value
            theCell.InnerText
爬行

我认为问题在于缩进。在F#中,如果代码缩进了相同数量的空格,则该代码适合一个块。

您应该以与ead_value_openxml函数的其余代码相同的缩进级别返回值。功能似乎已经缩进了。尝试这种方式:

//Read the value of a single cell by string coordinates (Open XML SDK)
let read_value_openxml file_path_and_name column row =
    let stream = new System.IO.FileStream(file_path_and_name, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)

    // Open the spreadsheet document for read-only access.
    let document = SpreadsheetDocument.Open(stream, false)

    // Retrieve a reference to the workbook part.
    let wbPart = document.WorkbookPart

    // Find the sheet with the supplied name, and then use that sheet object to retrieve a reference to the first worksheet.
    let firstSheet:Sheet = wbPart.Workbook.Descendants<Sheet>().First()
    let theSheet:Worksheet = ((WorksheetPart.wbPart.GetPartById(firstSheet.Id)).Worksheet

    // Retrieve a reference to the worksheet part.
    let wsPart = wbPart.GetPartById(firstSheet.Id)

    // Use its Worksheet property to get a reference to the cell whose address matches the address you supplied.
    let theCell = wsPart.Worksheet.Descendants<Cell>().Where(fun c -> c.CellReference = column + row).FirstOrDefault()

    // Return a value
    theCell.InnerText

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Open XML SDK在.xlsx文件的现有行中添加新单元格?

来自分类Dev

使用python将xml数据转储到csv文件中的单元格中

来自分类Dev

如何使使用XML解析的Excel单元格中的删除线文本更健壮?

来自分类Dev

在Symfony2中使用PHPExcel读取Excel文件,编辑一个单元格的内容,然后保存到数据库

来自分类Dev

在Symfony2中使用PHPExcel读取Excel文件,编辑一个单元格的内容,然后保存到数据库

来自分类Dev

使用Python读取Excel中的合并单元格

来自分类Dev

使用C#在OPEN XML sdk中添加引用另一个工作簿中的单元格的公式

来自分类Dev

使用SQL Server 2012返回XML查询中的XML单元格数据

来自分类Dev

C#OPEN XML:从EXCEL到DATATABLE获取数据时,将跳过空单元格

来自分类Dev

使用Open XML SDK读取Excel图表模板(* .crtx)

来自分类Dev

使用java从excel文件读取时如何停止自动填充单元格选项

来自分类Dev

Excel VBA提取zip文件并使用单元格值重命名内容

来自分类Dev

来自封闭工作簿的Excel单元格引用,使用单元格中的文件名

来自分类Dev

使用特定格式更新Excel工作表中单元格中的内容

来自分类Dev

使用VBA在excel中的文本框中显示单元格内容

来自分类Dev

Excel电子表格使用XML和XSLT进行动态单元格着色

来自分类Dev

如何使用C#Windows窗体从Excel中的多个单元格读取

来自分类Dev

使用带有?的字符串 从Visual Basic中的Excel单元格内容

来自分类Dev

使用可变字段重新排列 Excel/R 中的多个单元格内容

来自分类Dev

通过使用单元格值中的文件路径从多个Excel文件中检索数据

来自分类Dev

使用NPOI单元格范围地址读取Excel

来自分类Dev

如何使用R读取合并的Excel单元格

来自分类Dev

使用NPOI单元格范围地址读取Excel

来自分类Dev

使用Apache POI从Excel读取单元格

来自分类Dev

使用 Java 从 Excel(多个单元格)读取

来自分类Dev

使用Python读取CSV文件行中的最后一个非空单元格

来自分类Dev

从一个Excel单元格到新XML文件的XML数据

来自分类Dev

如果使用excel 2010 vba选中了复选框,则将单元格的内容添加到文本文件中

来自分类Dev

UITableViewController,在Storyboard中具有不同的单元格大小和单元格内容

Related 相关文章

  1. 1

    如何使用Open XML SDK在.xlsx文件的现有行中添加新单元格?

  2. 2

    使用python将xml数据转储到csv文件中的单元格中

  3. 3

    如何使使用XML解析的Excel单元格中的删除线文本更健壮?

  4. 4

    在Symfony2中使用PHPExcel读取Excel文件,编辑一个单元格的内容,然后保存到数据库

  5. 5

    在Symfony2中使用PHPExcel读取Excel文件,编辑一个单元格的内容,然后保存到数据库

  6. 6

    使用Python读取Excel中的合并单元格

  7. 7

    使用C#在OPEN XML sdk中添加引用另一个工作簿中的单元格的公式

  8. 8

    使用SQL Server 2012返回XML查询中的XML单元格数据

  9. 9

    C#OPEN XML:从EXCEL到DATATABLE获取数据时,将跳过空单元格

  10. 10

    使用Open XML SDK读取Excel图表模板(* .crtx)

  11. 11

    使用java从excel文件读取时如何停止自动填充单元格选项

  12. 12

    Excel VBA提取zip文件并使用单元格值重命名内容

  13. 13

    来自封闭工作簿的Excel单元格引用,使用单元格中的文件名

  14. 14

    使用特定格式更新Excel工作表中单元格中的内容

  15. 15

    使用VBA在excel中的文本框中显示单元格内容

  16. 16

    Excel电子表格使用XML和XSLT进行动态单元格着色

  17. 17

    如何使用C#Windows窗体从Excel中的多个单元格读取

  18. 18

    使用带有?的字符串 从Visual Basic中的Excel单元格内容

  19. 19

    使用可变字段重新排列 Excel/R 中的多个单元格内容

  20. 20

    通过使用单元格值中的文件路径从多个Excel文件中检索数据

  21. 21

    使用NPOI单元格范围地址读取Excel

  22. 22

    如何使用R读取合并的Excel单元格

  23. 23

    使用NPOI单元格范围地址读取Excel

  24. 24

    使用Apache POI从Excel读取单元格

  25. 25

    使用 Java 从 Excel(多个单元格)读取

  26. 26

    使用Python读取CSV文件行中的最后一个非空单元格

  27. 27

    从一个Excel单元格到新XML文件的XML数据

  28. 28

    如果使用excel 2010 vba选中了复选框,则将单元格的内容添加到文本文件中

  29. 29

    UITableViewController,在Storyboard中具有不同的单元格大小和单元格内容

热门标签

归档