通过OpenXML SDK获取一张excel的表(工作部分)

时间:2013-01-22 07:37:36

标签: c# excel c#-4.0 openxml openxml-sdk

我在一张excel文件中有3个表, 我使用OpenXML SDK来读取Excel文件,如下所示:

SpreadSheetDocument document = SpreadSheetDDocument.open(/*read it*/);
foreach(Sheet sheet in document.WorkbookPart.Workbook.Sheets)
{
   //I need each table or work part of sheet here
}

因此,当你看到我可以获得每张Excel时,但是如何在每张表中获得工作部分,就像我应该在这些表上迭代的3个表一样,有没有人知道这个?有什么建议吗?

1 个答案:

答案 0 :(得分:6)

这有帮助吗?

// true for editable
using (SpreadsheetDocument xl = SpreadsheetDocument.Open("yourfile.xlsx", true))
{
    foreach (WorksheetPart wsp in xl.WorkbookPart.WorksheetParts)
    {
        foreach (TableDefinitionPart tdp in wsp.TableDefinitionParts)
        {
            // for example
            // tdp.Table.AutoFilter = new AutoFilter() { Reference = "B2:D3" };
        }
    }
}

请注意,实际的单元格数据不在Table对象中,而是在SheetData中(在WorksheetPart的Worksheet下)。你知道吗。