Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: workbook_add_chart() #36

Closed
jmcnamara opened this issue Dec 10, 2015 · 12 comments
Closed

Feature request: workbook_add_chart() #36

jmcnamara opened this issue Dec 10, 2015 · 12 comments

Comments

@jmcnamara
Copy link
Owner

Add workbook_add_chart() function like the Python XlsxWriter Workbook method add_chart().
See https://xlsxwriter.readthedocs.org/index.html

  • Difficulty: 5 (Easy 1 - 5 Hard)
  • Priority: 1 (High 1 - 5 Low)

Add +1 as a comment to vote for this feature and to get an update when it is implemented.

@jmcnamara jmcnamara self-assigned this Dec 10, 2015
@jmcnamara jmcnamara added this to the Phase3 milestone Dec 10, 2015
@mts749
Copy link

mts749 commented Dec 10, 2015

+1

1 similar comment
@nelson2005
Copy link

+1

@jmcnamara
Copy link
Owner Author

Note, the Phase 1 features are now complete. Since there seems to be more interest in charts than in other features I've move this to the next in line feature.

It will take several months. I'll post updates as soon as there is some working code.

@mts749
Copy link

mts749 commented Jan 3, 2016

Great!! Many thanks. If I can help in any way please let me know.

@slugdev
Copy link

slugdev commented Mar 22, 2016

+1

@jmcnamara
Copy link
Owner Author

Just a note that I have started the chart implementation. It is on a development branch called charts but it is not ready for general consumption yet.

Nevertheless, I wanted to share the first working example:

#include "xlsxwriter.h"

int main() {

    lxw_workbook  *workbook  = new_workbook("chart_bar.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    int row, col;

    /* Some data for the chart. */
    uint8_t data[5][3] = {
        {1, 2,  3},
        {2, 4,  6},
        {3, 6,  9},
        {4, 8,  12},
        {5, 10, 15}
    };

    /* Write the data to the worksheet. */
    for (row = 0; row < 5; row++)
        for (col = 0; col < 3; col++)
            worksheet_write_number(worksheet, row, col, data[row][col] , NULL);


    /* Create a chart object. */
    lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_BAR);

    /* Add two series to the chart. */
    chart_add_series(chart, NULL, "Sheet1!$A$1:$A$5");
    chart_add_series(chart, NULL, "Sheet1!$B$1:$B$5");

    /* Position the chart in the worksheet. */
    worksheet_insert_chart(worksheet, CELL("B7"), chart);

    return workbook_close(workbook);
}

Which gives this output:

screen shot 2016-05-03 at 00 17 20

I'll post an update when there is something usable for testing.

@nelson2005
Copy link

nelson2005 commented May 4, 2016

Sweet!  It's great to see this progress on the charting!

@jmcnamara
Copy link
Owner Author

The chart work is stable now and I have moved it to the master branch in preparation for a release in the next few days.

This took a bit of work:

$ git diff master --stat
...
235 files changed, 10238 insertions(+), 583 deletions(-)

I've updated the documentation see: chart.h and the chart example.

The documentation still needs some additional work before the release but the code is well tested and useable.

Note, not all of the chart features in the Perl/Python versions are available yet. That will take some time and I will open other issues trackers to track the progress of those.

I would be good if you could try the current version on master and let me know what you think.

@nelson2005
Copy link

nelson2005 commented May 23, 2016

Wow, you've been busy!  This is such a cool project.  Great work, I imagine it must be a little tedious for you, having done similar work a number of times before in Python/Perl/Lua
My main interest is the Lua end of things.  Have  you run into anyone else who has an interest in a Lua binding for libxlsxwriter?
Erik

@jmcnamara
Copy link
Owner Author

@nelson2005 I'll open up a new Feature Request issue for Lua bindings to let people know. There are a couple of people who were active on the pure Lua port who might be interested in helping out. I'm not. :-)

@jmcnamara
Copy link
Owner Author

The chart feature has been merged to master and released. I'll close this issue shortly when I open up some others to track the missing features.

@jmcnamara
Copy link
Owner Author

See #51 for additional chart features. Closing this since the basic chart functionality has been added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants