{
    "content": [
        {
            "type": "text",
            "text": "# Spreadsheet::XLSX (perldoc)\n\n## NAME\n\nSpreadsheet::XLSX - Perl extension for reading MS Excel 2007 files;\n\n## SYNOPSIS\n\nuse Text::Iconv;\nmy $converter = Text::Iconv->new(\"utf-8\", \"windows-1251\");\n# Text::Iconv is not really required.\n# This can be any object with the convert method. Or nothing.\nuse Spreadsheet::XLSX;\nmy $excel = Spreadsheet::XLSX->new('test.xlsx', $converter);\nforeach my $sheet (@{$excel->{Worksheet}}) {\nprintf(\"Sheet: %s\\n\", $sheet->{Name});\n$sheet->{MaxRow} ||= $sheet->{MinRow};\nforeach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) {\n$sheet->{MaxCol} ||= $sheet->{MinCol};\nforeach my $col ($sheet->{MinCol} ..  $sheet->{MaxCol}) {\nmy $cell = $sheet->{Cells}[$row][$col];\nif ($cell) {\nprintf(\"( %s , %s ) => %s\\n\", $row, $col, $cell->{Val});\n}\n}\n}\n}\n\n## DESCRIPTION\n\nThis module is a (quick and dirty) emulation of Spreadsheet::ParseExcel for Excel 2007 (.xlsx)\nfile format. It supports styles and many of Excel's quirks, but not all. It populates the\nclasses from Spreadsheet::ParseExcel for interoperability; including Workbook, Worksheet, and\nCell.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **SEE ALSO**\n- **AUTHOR**\n- **ACKNOWLEDGEMENTS**\n- **COPYRIGHT AND LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Spreadsheet::XLSX",
        "section": "",
        "mode": "perldoc",
        "summary": "Spreadsheet::XLSX - Perl extension for reading MS Excel 2007 files;",
        "synopsis": "use Text::Iconv;\nmy $converter = Text::Iconv->new(\"utf-8\", \"windows-1251\");\n# Text::Iconv is not really required.\n# This can be any object with the convert method. Or nothing.\nuse Spreadsheet::XLSX;\nmy $excel = Spreadsheet::XLSX->new('test.xlsx', $converter);\nforeach my $sheet (@{$excel->{Worksheet}}) {\nprintf(\"Sheet: %s\\n\", $sheet->{Name});\n$sheet->{MaxRow} ||= $sheet->{MinRow};\nforeach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) {\n$sheet->{MaxCol} ||= $sheet->{MinCol};\nforeach my $col ($sheet->{MinCol} ..  $sheet->{MaxCol}) {\nmy $cell = $sheet->{Cells}[$row][$col];\nif ($cell) {\nprintf(\"( %s , %s ) => %s\\n\", $row, $col, $cell->{Val});\n}\n}\n}\n}",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 34,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 26,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "ACKNOWLEDGEMENTS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COPYRIGHT AND LICENSE",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Spreadsheet::XLSX - Perl extension for reading MS Excel 2007 files;\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use Text::Iconv;\nmy $converter = Text::Iconv->new(\"utf-8\", \"windows-1251\");\n\n# Text::Iconv is not really required.\n# This can be any object with the convert method. Or nothing.\n\nuse Spreadsheet::XLSX;\n\nmy $excel = Spreadsheet::XLSX->new('test.xlsx', $converter);\n\nforeach my $sheet (@{$excel->{Worksheet}}) {\n\nprintf(\"Sheet: %s\\n\", $sheet->{Name});\n\n$sheet->{MaxRow} ||= $sheet->{MinRow};\n\nforeach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) {\n\n$sheet->{MaxCol} ||= $sheet->{MinCol};\n\nforeach my $col ($sheet->{MinCol} ..  $sheet->{MaxCol}) {\n\nmy $cell = $sheet->{Cells}[$row][$col];\n\nif ($cell) {\nprintf(\"( %s , %s ) => %s\\n\", $row, $col, $cell->{Val});\n}\n\n}\n\n}\n\n}\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This module is a (quick and dirty) emulation of Spreadsheet::ParseExcel for Excel 2007 (.xlsx)\nfile format. It supports styles and many of Excel's quirks, but not all. It populates the\nclasses from Spreadsheet::ParseExcel for interoperability; including Workbook, Worksheet, and\nCell.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Spreadsheet::ParseXLSX\nThis module has some serious issues with the way it uses regexs for parsing the XML. I would\nstrongly encourage switching to Spreadsheet::ParseXLSX which takes a more reliable approach.\n\nText::CSVXS, Text::CSVPP\nSpreadsheet::ParseExcel\nSpreadsheet::ReadSXC\nSpreadsheet::BasicRead\nfor xlscat likewise functionality (Excel only)\n\nSpreadsheet::ConvertAA\nfor an alternative set of \"cell2cr()\" / \"cr2cell()\" pair\n\nSpreadsheet::Perl\noffers a Pure Perl implementation of a spreadsheet engine. Users that want this format to be\nsupported in Spreadsheet::Read are hereby motivated to offer patches. It's not high on my\ntodo-list.\n\nxls2csv\n<https://metacpan.org/release/KEN/xls2csv-1.07> offers an alternative for my \"xlscat -c\", in\nthe xls2csv tool, but this tool focusses on character encoding transparency, and requires some\nother modules.\n\nSpreadsheet::Read\nread the data from a spreadsheet (interface module)\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Dmitry Ovsyanko, <do@eludia.ru>, http://eludia.ru/wiki/\n\nPatches by:\n\nSteve Simms\nJoerg Meltzer\nLoreyna Yeung\nRob Polocz\nGregor Herrmann\nH.Merijn Brand\nendacoe\nPat Mariani\nSergey Pushkin\n",
                "subsections": []
            },
            "ACKNOWLEDGEMENTS": {
                "content": "Thanks to TrackVia Inc. (http://www.trackvia.com) for paying for Rob Polocz working time.\n",
                "subsections": []
            },
            "COPYRIGHT AND LICENSE": {
                "content": "Copyright (C) 2008 by Dmitry Ovsyanko\n\nThis library is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may\nhave available.\n",
                "subsections": []
            }
        }
    }
}