Coder Social home page Coder Social logo

meinsiedler / exceltableconverter Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 1.0 220 KB

Excel Add-In to convert a selected range in an excel table to multiple other table formats, e.g. LaTeX, Atlassian Jira, Markdown

License: MIT License

C# 100.00%
add-ins excel jira latex markdown

exceltableconverter's People

Contributors

meinsiedler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

fd-md-bd

exceltableconverter's Issues

Wrap Interop classes for better mocking/unit testing

To allow unit testing of the Excel Extractors, wrap all classes in the Microsoft.Office.Interop.Excel namespace with own interfaces/classes to allow unit testing and mocking without needing to access the Interop-namespace directly.

Note, that this also allows running the unit tests on CI-servers, because an installed Excel is not required any more.

Provide some "About" information

Provide a set of information for the Excel-Add in.
Possible information items are:

  • Current version number (e.g. in the dialog title)
  • Author
  • Release date
  • Link to GitHub repository
  • License information

Todos for first pre-release

  • update to .NET 4.5
  • remove prerequist .NET 3.5
  • replace solution item with NuGet reference (e.g. nunit)
  • create new PFX key for signing
  • change NUnit assert.AreEqual(..) to new Assert.That(...) syntax
  • fix NUnit tests

Add link to GitHub releases and changelog in About window

Link to releases: https://github.com/meinsiedler/ExcelTableConverter/releases
Link to changelog: https://github.com/meinsiedler/ExcelTableConverter/blob/master/CHANGELOG.md (this is the CHANGELOG from the master build, meaning the latest released changelog)

LaTeX converter: Remove `[!ht]` option from table environment

Currently, the table environment of the LaTeX converter is generated with \begin{table}[!ht]. Remove the [!ht] position setting.

Position settings should not be concerned by the ExcelTableConverter, because the ExcelTableConverter is just good for converting to target formats, but does not consider additional position settings for the produced table in the target environment.

Add possibility to save default values

Add a "Save as default" button which saves the current settings for the user. When restarting Excel, these settings should automatically get applied.
With this feature it is possible that a user stores his favored target table format and other extended settings.

Implementation notes

  • Configuration is stored in users's AppData folder
  • Stored configuration will be overridden when "Save as default" button is pressed multiple times
  • also consider "auto save" option so instead of "Save as default" button

Convert dialog open position

The convert dialog opens always on the upper left corner of the screen with some horizontal and vertical offset.

When working with two screens and Excel is open on the right screen, the convert dialog still opens in the upper left corner of the left screen.

=> Open the convert dialog in the middle of the Excel window

Add simple "markdown" target table format

Add support for markdown tables which look like this:

| Tables | Are  | Cool |
| ------ |------| -----|
| 1      | 2    | 3    |
| 4      | 5    | 6    |
| 7      | 8    | 9    |

Notes:

  1. Since most of the markdown parsers do not support tables without headers, the first row will always be a header row.
  2. Alignment of columns is not supported in the first step.
  3. Pretty printing is also not implemented in the first step. (see #12)

Jira Extended Feature: First Row is Header

Add a new "Extended Feature" for "Atlassian Jira" table format:
A checkbox "First row is header" which indicates that the first row in the selection should be treated as a header row in the converted Jira table.

Add "Pretty print" option for all output formats

Add an extended feature option "Pretty print" for LaTeX, Jira and Markdown output which aligns the columns so, that all column separators will be aligned one below the other.

For Jira output for example, instead of

| 1 | 22 | 333 |
| 4444 | 55 | 6666 |

with "Pretty print" enabled, the output is

| 1    | 22 | 333  |
| 4444 | 55 | 6666 |

Note that there are basically three options how the content should be aligned:

  1. Let the user manually set the alignment of the content (left, right, center) for all cells.
  2. Set alignment based on content type (e.g. right align numbers, left align text).
  3. Set alignment based on the cell alignment in Excel.

โ—๏ธ Also note that column separators can have different length. For example, the Jira header column separator is || while the normal column separator is |.

Import and export settings

This feature extends #14

Add two new Menu-Items:

  • File -> Import Settings
  • File -> Export Settings

where currently defined settings (Selected converter and Extended Features) can be imported and exported from/into a XML file.

Add keyboard shortcut for "Quick Convert"

The "Quick Convert" option is currently accessible through the context menu. It uses the current settings from the Convert-Dialog.

Create a new shortcut for the "Quick Convert" option to allow a faster conversion by using this shortcut.

TODO: Define, which shortcut should be used (check which shortcut is not in use and does not overlap with other shortcuts)

Check if non-modal dialog is an option

  • Check if the current implementation allows an non-modal dialog. This would increase the user experience.
  • Check if leaving the dialog open and then changing the selection still works. (The conversion considers the new selection)
  • Also check, if this has any effect on the "Quick Convert" functionality.

When everything works out as expected, change the dialog from modal to non-modal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.