xlsx_issue_demo

command module
v0.0.0-...-4638d04 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2017 License: MIT Imports: 3 Imported by: 0

README

xlsx_issue_demo

Small, Simple Demo Program for @tealeg/xlsx Issue #312

My Understanding of the Problem

I'm experiencing issues with opening a large excel file I have, which has been generated by microstrategy.gmu.edu (I'm fairly certain Microstrategy uses sheet.js). While the file size itself is only 2.6 MB, it does have around a half a million cells populated with data (this sheet contains every section of every course being taught at my university along with information about each).

The exact spreadsheet I am trying to open can be found at https://github.com/ocelotsloth/schedules/blob/master/dist/exampleFall2017.xlsx.

When I try to open this file, the program hangs, consumes 100% CPU, and allocates itself a truly absurd amount of memory (or swap? To be honest I'm still not 100% clear on what VIRT is):

hr9wn6d

Research I have done so far

I have done some research already and do not think it is related to either #109 or #114. This file is significantly smaller in filesize, and as explained below, the offending commit doesn't appear to be directly related to opening files (though I could very well be wrong on that second assertion).

This is a cross-platform issue that I have tested by compiling against Windows, Darwin, and Linux.

I performed a git bisect and was able to narrow down the offending commit to e07ef57987388ad2510dac5fa2b5dde5945b1b31, which was authored by @tealeg in October of 2015 (sorry to bring up such a distant memory). I've added the commit message below for quick reference:

commit e07ef57987388ad2510dac5fa2b5dde5945b1b31
Author: Geoffrey J. Teale <geoffrey.teale@canonical.com>
Date:   Fri Oct 2 23:19:48 2015 +0200

    Populate the VMerge and HMerge properties of the cell based on the xlsxWorksheet.MergeCells.

This commit adds in some actions dealing with Merge Cells, but since I was more concerned with graduating high school than learning Golang at the time I couldn't tell you the full extent of what it does and also don't know how fits in with other work being done at the time.

A helpful repository to explore and test

Since the project I'm using this library in is actually my way of picking up and learning Golang, I'm well aware that I'm not really going to be of much further use to try and take a stab at the exact problem here. In lieu of that kind of help, I've gone ahead and made a simple program to clearly demonstrate the issue.

go get github.com/ocelotsloth/xlsx_issue_demo should pull down both the demo program as well as the excel spreadsheet I am working with.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL