Skip to content

Read .xlsx and .pptx (and .ods, .odp) with the zip reader DigUp already has #75

Closed

Description

@njeanselme

Use case

At work, much of what people look for sits in spreadsheets and slide decks: budgets, quotes, project decks. DigUp skips them today. In 0.7.0-beta.1, digup estimate on a folder with one file per format lists .xlsx, .xls, .pptx, .ods and .odp as skipped.

Proposal, with no new dependency

The same approach as .docx and .odt in Docs+Portable.swift: read the XML inside the zip with miniz and keep the text.

  • .pptx: ppt/slides/slideN.xml (text runs, paragraph ends), in the slide order given by ppt/presentation.xml, optionally with the speaker notes.
  • .xlsx: xl/worksheets/sheetN.xml with xl/sharedStrings.xml for the text cells, and sheet names from xl/workbook.xml. One row per line.
  • .odp and .ods: content.xml (draw:page, table:table), as for .odt.

Places: one part per slide or sheet, so a result can say "slide 3" or "sheet Budget", as a PDF's page does. Plain chunks would also work, if that's simpler.

Mostly numeric sheets would stay keyword-only, as SearchText.hasWords already decides for other text, and a cap on cells per workbook would play the role of maxChunks. The old binary .xls and .ppt are out of scope.

#6 reads decks on Linux through LibreOffice. This would cover .xlsx, .pptx, .ods and .odp on every system, without an external program.

Questions

  1. Is this something you'd take?
  2. Slides and sheets as places, like PDF pages, or plain chunks?
  3. Should the Mac use the same reader? Cocoa's text system doesn't read these formats.

Activity

  1. added a commit that references this issue on Oct 20, 2026
    cd3677e
  2. ARahim3 commented on Oct 21, 2026

    @ARahim3
    Owner

    In 0.6.2 by your #86, @njeanselme: xlsx, pptx, ods and odp are read for their text, the same on every system; the next Windows and Linux beta has it too. Closing since it's released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions