FileIO.jl integration for Excel files
Clone or download
Latest commit 7f5aadb Nov 19, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add sheetname keyword and a test for it Nov 20, 2018
test Add sheetname keyword and a test for it Nov 20, 2018
.codecov.yml ExcelFiles.jl generated files. Jun 8, 2017
.gitignore ExcelFiles.jl generated files. Jun 8, 2017
.travis.yml Update CI config Sep 6, 2018
LICENSE.md Update to julia 0.7 Jul 22, 2018
NEWS.md Update NEWS Nov 20, 2018
README.md Update README Sep 5, 2018
REQUIRE Move DataFrames to test/REQUIRE Nov 20, 2018
appveyor.yml Update CI config Sep 6, 2018

README.md

ExcelFiles

Project Status: Active - The project has reached a stable, usable state and is being actively developed. Build Status Build status ExcelFiles codecov.io

Overview

This package provides load support for Excel files under the FileIO.jl package.

Installation

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

Usage

Load an Excel file

To read a Excel file into a DataFrame, use the following julia code:

using ExcelFiles, DataFrames

df = DataFrame(load("data.xlsx", "Sheet1"))

The call to load returns a struct that is an IterableTable.jl, so it can be passed to any function that can handle iterable tables, i.e. all the sinks in IterableTable.jl. Here are some examples of materializing an Excel file into data structures that are not a DataFrame:

using ExcelFiles, DataTables, IndexedTables, TimeSeries, Temporal, Gadfly

# Load into a DataTable
dt = DataTable(load("data.xlsx", "Sheet1"))

# Load into an IndexedTable
it = IndexedTable(load("data.xlsx", "Sheet1"))

# Load into a TimeArray
ta = TimeArray(load("data.xlsx", "Sheet1"))

# Load into a TS
ts = TS(load("data.xlsx", "Sheet1"))

# Plot directly with Gadfly
plot(load("data.xlsx", "Sheet1"), x=:a, y=:b, Geom.line)

The load function also takes a number of parameters:

function load(f::FileIO.File{FileIO.format"Excel"}, range; keywords...)

Arguments:

  • range: either the name of the sheet in the Excel file to read, or a full Excel range specification (i.e. "Sheetname!A1:B2").
  • The keywords arguments are the same as in ExcelReaders.jl (which is used under the hood to read Excel files). When range is a sheet name, the keyword arguments for the readxlsheet function from ExcelReaders.jl apply, if range is a range specification, the keyword arguments for the readxl function apply.

Using the pipe syntax

load also support the pipe syntax. For example, to load an Excel file into a DataFrame, one can use the following code:

using ExcelFiles, DataFrame

df = load("data.xlsx", "Sheet1") |> DataFrame

The pipe syntax is especially useful when combining it with Query.jl queries, for example one can easily load an Excel file, pipe it into a query, then pipe it to the save function to store the results in a new file.