summaryrefslogtreecommitdiffhomepage
path: root/lib
AgeCommit message (Collapse)Author
2020-11-27Add casting to dateArtem Kozaev
Add tests
2020-11-27Allow to set cell type to `date`Artem Kozaev
2020-08-29Update #serialize to accept 3 argumentsRyan Winograd
2020-08-28Update doc to reflect preferred new public interfaceRyan Winograd
2020-08-24Explosion explosion fixed - issue 58Noel Peden
2020-08-20Deprecate using `#serialize` with boolean argumentRyan Winograd
Update `Axlsx::Package#serialize` to accept the second argument as a boolean (being deprecated) or an options hash. In order to transition toward using keyword arguments for `Axlsx::Package#serialize`, change the documented method signature to an options hash, while still parsing the second argument as `confirm_valid` if a boolean is provided (in which case we also warn the user that a boolean argument is deprecated).
2020-08-19Add option to `#serialize` with system zip commandRyan Winograd
Add a `:zip_command` option to `Axlsx::Package#serialize` that allows the user to specify an alternate command to use to perform the zip operation on the XLSX file contents. The default zip operation is provided by RubyZip. On large documents users may experience faster zip times using a zip binary. Resolves #55
2020-07-27Fix type detection for floats with out-of-rage exponents (#54)Stefan Daschek
Prior to this change, strings like "1e12345" would be interpreted as float values, regardless of the actual value of the exponent (which easily could be out of range for Ruby). In case the exponent was greater than `Float::MAX_10_EXP` (usually 308), this would result in a cell of type `:float` containing the literal string `"Infinity"`. Excel can not parse such cells and therefore gives a “corrupt data” error. In case the exponent was less than `Float::MIN_10_EXP` (usually -307) the cell would contain `0.0`. This does not result in Excel throwing an error, but probably isn't the expected result either. Note that this problem is quite likely to happen when creating a worksheet with hexadecimal strings, because e.g. "1234e567" is a perfectly valid hex value. The additional range check of the exponent introduces a slight performance overhead, so I decided to split the code path: I presume parsing floats with exponents < 100 (or no exponents at all) is way more common, so this code path behaves exactly like before. Only in the case of a 3 digit exponent the additional range check is introduced.
2020-07-16Version bump to 3.0.2 [skip ci]Noel Peden
2020-07-16Binary image read for issue #51Noel Peden
2020-07-14Set column width to the maximum allowed value (#53)Sergey Ponomarev
Maximum column width limit in MS Excel is 255 characters https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3 If this value is exceeded, MS Excel gets stuck and doesn't allow column resizing.
2020-07-09fix typo in documentation for label_position (#52)Viktor Polyakov
2020-02-13Improve cell string_autowidth calculations (#44)Weston Ganger
Previously, cells with autowidth sometimes were too narrow for the content to fit. The original width calculation tried to take the difference between narrow and wide chars into account, but it didn’t work out very well. The new calculation is simpler. Compared to the previous implementation it results in cells being slightly wider in most cases.
2020-01-28Fix typo in documentation (#42)
2019-12-29Escape special characters in charts (#40)Zsolt Kozaroczy
Fixes #37
2019-12-20Add option to protect against formula injection attacks (#34)Gabriel Morcote
Caxlsx used to treat cell values beginning with an equal sign as formula by default. This can be dangerous if the input data is user generated or coming from other untrusted sources (see https://www.owasp.org/index.php/CSV_Injection for details). This commit adds a new option `escape_formulas` that can be used with `#add_row` and on instances of `Cell`. If set to true, cell values beginning with an equal sign are treated as normal strings (and will be displayed literally by Excel and co.)
2019-12-17Fix typos in BarChart commentsKoza
2019-12-17Check size in bytes as opposed to string sizeIan Clarkson
- `size` returns length in characters, but doesn't factor in multibyte Unicode characters. By switching to `bytesize`, we check the relevant measure of how many bytes the worksheet name is. - Fixes https://github.com/randym/axlsx/issues/588 - Copy of PR against original axlsx (https://github.com/randym/axlsx/pull/589)
2019-12-15Fix rdoc for BarSeries#shapeStefan Daschek
2019-12-15Fix typoStefan Daschek
See https://github.com/randym/axlsx/pull/606
2019-12-15Fix typo.Stefan Daschek
See https://github.com/randym/axlsx/pull/635
2019-12-03Remove unused / stubbed code related to parsing xlsx filesStefan Daschek
This code was added in 3def8f8895 (back in 2011). It has never been worked on further since; `Axlsx::Parser` is not used anywhere in the whole codebase. Currently there are no plans to support parsing xlsx file anytime soon, so let‘s remove all of this dead code.
2019-10-29Remove a typo from commentvzvu3k6k
Fixnum is removed by 12d6433, but this typo was remained.
2019-10-29fix validate document with font option underlineAli Mujtaba
2019-10-04Version 3.0.1 bump [skip ci]Noel Peden
2019-10-02Cache relationship in Hash rather than in Array.Vladimir Kochnev
Also cacle only ids, not entire instances.
2019-10-02Fix Relationship.instances cache.Vladimir Kochnev
This PR aims to fix several issues with Relationship cache: 1) It's not threadsafe, so I propose to use a TLS variable for this. 2) Memory obtained by cache remains non-freed before the next run of `serialize`. I think it should be freed immediately. 3) Memory should be freed in `ensure` block to prevent memory bloating in case of exception. *There are only two hard things in Computer Science: cache invalidation and naming things.*
2019-09-17Add caxlsx.rb to make auto require workKoza
https://guides.rubygems.org/make-your-own-gem/ The convention is to have one Ruby file with the same name as your gem, since that gets loaded when require is run.
2019-09-08Release 3.0.0Noel Peden
2018-02-08chore(coverage): 100% coverage, 100% docsrandym
2018-02-08chore(coverage) increase coverage and cleanuprandym
2018-02-07Merge branch 'master' into release-3.0.0randym
2018-02-07fix(docs): patch docs returns -> returnrandym
2018-02-07Merge pull request #565 from ezcater/safe_frozen_sanitizeRandy Morgan (@morgan_randy)
Axlsx.sanitize() uses delete() vs. delete!() for frozen strings
2018-02-06Merge branch 'master' into release-3.0.0randym
2018-02-06Merge pull request #554 from ryantk/patch-1Randy Morgan (@morgan_randy)
Fix incorrect option value in rdoc
2018-02-06Merge pull request #563 from MedText/masterRandy Morgan (@morgan_randy)
Add support for Area Charts and 2D Bar Charts
2018-02-06Merge pull request #432 from repinel/fix-cols-docRandy Morgan (@morgan_randy)
[ci skip] Fix the documentation for Worksheet#cols
2018-02-06Merge branch 'master' into release-3.0.0randym
2018-01-11chore(clean): remove white spacerandym
2017-11-30Axlsx.sanitize() writes in place or copies on writeWinfield Peterson
Depending on whether a string is frozen, either a new string is created sanitized or the existing string is modified in place.
2017-11-29Axlsx.sanitize uses delete() vs. delete!() for frozen stringsWinfield Peterson
Whenever a frozen string is passed as an input to any sanitized value, we are modifying it in place which raised a RuntimeError if that string is frozen (as you might expect constants like header or workbook names to be). Use the safer delete() method which creates a new, modified copy of the string.
2017-11-17Add support for non-3D bar chartsDavid N. Robinson
2017-11-07Add support for area chartsDavid N. Robinson
2017-10-12Fix incorrect option value in rdocRyan Kendall
2017-05-05Sort archive entries for correct MIME detectionChi-Fung Fan
2017-04-01Merge branch 'master' into release-3.0.0randym
2017-04-01chore(doc): document some membersrandym
2017-04-01chore(version): update versionrandym
2017-04-01fix(options): fix parsing for start_at end_atrandym