Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "julia"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
22 changes: 0 additions & 22 deletions .github/workflows/jlpkgbutler-butler-dev-workflow.yml

This file was deleted.

43 changes: 0 additions & 43 deletions .github/workflows/jlpkgbutler-ci-master-workflow.yml

This file was deleted.

39 changes: 0 additions & 39 deletions .github/workflows/jlpkgbutler-ci-pr-workflow.yml

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/jlpkgbutler-codeformat-pr-workflow.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/jlpkgbutler-compathelper-workflow.yml

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/jlpkgbutler-docdeploy-workflow.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .github/workflows/jlpkgbutler-tagbot-workflow.yml

This file was deleted.

17 changes: 17 additions & 0 deletions .github/workflows/juliaci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Julia CI

on:
push: {branches: [main,master]}
pull_request: {types: [opened,synchronize,reopened,ready_for_review,converted_to_draft]}
issue_comment: {types: [created]}
workflow_dispatch: {inputs: {feature: {type: choice, description: What to run, options: [DocDeploy,LintAndTest,TagBot]}}}

jobs:
julia-ci:
uses: julia-testitems/testitem-workflow/.github/workflows/juliaci.yml@v2
with:
include-all-compatible-minor-versions: true
include-rc-versions: true
permissions: write-all
secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
*.jl.cov
*.jl.mem
.vscode
*.jl.*.cov
docs/build/
docs/Manifest.toml
test-output*.*
Manifest.toml
1 change: 0 additions & 1 deletion .jlpkgbutler.toml

This file was deleted.

2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The ExcelReaders.jl package is licensed under the MIT "Expat" License:

> Copyright (c) 2016-2019: David Anthoff.
> Copyright (c) 2016-2026: David Anthoff.
>
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
Expand Down
23 changes: 12 additions & 11 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
name = "ExcelReaders"

Check notice on line 1 in Project.toml

View workflow job for this annotation

GitHub Actions / julia-ci / lint

environment_errors

Failed to resolve the test environment of package 'ExcelReaders' at /home/runner/work/ExcelReaders.jl/ExcelReaders.jl: expected package `LibXLS [221edcab]` to be registered. Missing-reference checks are degraded in that scope; enable debug logging for the full error.
uuid = "c04bee98-12a5-510c-87df-2a230cb6e075"
version = "0.12.1-DEV"
version = "1.0.0-DEV"

[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d"
DataValues = "e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5"
PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"

[extras]
TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
LibXLS = "221edcab-ec84-5148-84a2-7385855c517f"
XLSX = "fdbf4ff8-1666-58a4-91e7-1b58723a45e0"

[compat]
DataValues = "0.4.4, 0.5, 1"
Dates = "1"
LibXLS = "0.1, 0.2, 1"
XLSX = "0.12"
julia = "1.6"
Conda = "1.9"
DataValues = "0.4.4"
PyCall = "1.96"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a"

[targets]
test = ["Test", "TestItemRunner"]
35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# ExcelReaders

[![Build Status](https://travis-ci.org/queryverse/ExcelReaders.jl.svg?branch=master)](https://travis-ci.org/queryverse/ExcelReaders.jl)
[![Build status](https://ci.appveyor.com/api/projects/status/v7b60gfrg65qkqt5/branch/master?svg=true)](https://ci.appveyor.com/project/queryverse/excelreaders-jl/branch/master)
[![Coverage Status](https://coveralls.io/repos/queryverse/ExcelReaders.jl/badge.svg)](https://coveralls.io/r/queryverse/ExcelReaders.jl)
[![codecov](https://codecov.io/gh/queryverse/ExcelReaders.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/queryverse/ExcelReaders.jl)
[![Build Status](https://github.com/queryverse/ExcelReaders.jl/actions/workflows/juliaci.yml/badge.svg?branch=main)](https://github.com/queryverse/ExcelReaders.jl/actions/workflows/juliaci.yml)

ExcelReaders is a package that provides functionality to read Excel files.

**WARNING**: Version v0.12 removed support for modern Excel files. This package is now _only_ supporting legacy xls files. The reason for this is that the underlying Python package made that move a couple of years ago as well.

The [XLSX.jl](https://github.com/felipenoris/XLSX.jl) provides excellent support for modern Excel files.
Both legacy xls files (Excel 97-2003) and modern xlsx files are supported.
The file format is detected from the content of the file, not its extension.
Under the hood legacy files are read via
[LibXLS.jl](https://github.com/queryverse/LibXLS.jl) (a wrapper of the
[libxls](https://github.com/libxls/libxls) C library) and modern files via
[XLSX.jl](https://github.com/JuliaData/XLSX.jl), so the package has no Python
or Java dependency.

## Installation

Use ``Pkg.add("ExcelReaders")`` in Julia to install ExcelReaders and its dependencies.

The package uses the Python xlrd library. If either Python or the xlrd package are not installed on your Mac or Windows system, the package will use the [Conda.jl](https://github.com/Luthaf/Conda.jl) package to install all necessary dependencies automatically. If you are on another system you can either install Python and xlrd yourself or instruct PyCall to use Conda.jl to manage its own python install (`ENV["PYTHON"]=""; Pkg.build("PyCall")` and restart Julia).

## Alternatives

The [XLSX.jl](https://github.com/felipenoris/XLSX.jl) provides excellent support for modern Excel files.

The [Taro](https://github.com/aviks/Taro.jl) package also provides Excel file reading functionality. The main difference between the two packages (in terms of Excel functionality) is that ExcelReaders uses the Python package [xlrd](https://github.com/python-excel/xlrd) for its processing, whereas Taro uses the Java packages Apache [Tika](http://tika.apache.org/) and Apache [POI](http://poi.apache.org/).

## Basic usage

The most basic usage is this:
Expand All @@ -33,9 +26,11 @@ using ExcelReaders
data = readxl("Filename.xls", "Sheet1!A1:C4")
````

This will return an array with all the data in the cell range A1 to C4 on Sheet1 in the Excel file Filename.xls.
This will return an array with all the data in the cell range A1 to C4 on
Sheet1 in the Excel file Filename.xls.

If you expect to read multiple ranges from the same Excel file you can get much better performance by opening the Excel file only once:
If you expect to read multiple ranges from the same Excel file you can get much
better performance by opening the Excel file only once:

````julia
using ExcelReaders
Expand Down Expand Up @@ -64,3 +59,9 @@ This will read all content on Sheet1 in the file Filename.xls. Eventual blank ro
- ``ncols`` accepts either ``:all`` (default) or a postiive integer. With ``:all``, all columns (except skipped ones) are read. An integer specifies the exact number of columns to be read.

``readxlsheet`` also accepts an ExcelFile (as obtained from ``openxl``) as its first argument.

## Alternatives

[XLSX.jl](https://github.com/JuliaData/XLSX.jl) provides excellent, more
fully-featured support for modern Excel files (including write support), and
is used by this package as its xlsx backend.
2 changes: 1 addition & 1 deletion docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"

[compat]
Documenter = "~0.24"
Documenter = "1"
3 changes: 2 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ using Documenter, ExcelReaders

makedocs(modules = [ExcelReaders],
sitename = "ExcelReaders.jl",
analytics = "UA-132838790-1",
format = Documenter.HTML(analytics = "UA-132838790-1"),
warnonly = [:missing_docs],
pages = [
"Introduction" => "index.md"
])
Expand Down
Loading
Loading