Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Brainstorm
  4. Excel API for C/C++

Excel API for C/C++

Scheduled Pinned Locked Moved Brainstorm
43 Posts 16 Posters 80.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    goetz
    wrote on last edited by
    #1

    Does anyone know of a platform independent C or C++ library/API for reading and writing Excelâ„¢ files?

    The native API from Microsoft is not an option, as it might not be installed on every machine we target nor is it available on Macs.

    I know of jexcelapi for Java, but never heard of a similar lib for our beloved C++ :)

    http://www.catb.org/~esr/faqs/smart-questions.html

    1 Reply Last reply
    0
    • X Offline
      X Offline
      xsacha
      wrote on last edited by
      #2

      KSpread (part of KOffice) reads/writes Excel files. KSpread uses Qt (and KDE libs).

      Have you checked to see how they do it?

      • Sacha
      1 Reply Last reply
      0
      • A Offline
        A Offline
        andre
        wrote on last edited by
        #3

        Do you really need Excel output, or do you just need to output data that Excel can read?

        If the latter is enough, considder a simpler format like csv. Otherwise, you may want to investigate either the .ods or the .xlsx format. Both are packed structures with XML files, but they are not simple I have heard. I never worked with them directly.

        A last option that may be workable is to go through ODBC and QtSql. You can read and write Excel files that way, but of course there are limits to what you can do there.

        1 Reply Last reply
        0
        • G Offline
          G Offline
          goetz
          wrote on last edited by
          #4

          I've found some infos on the Excel 2003 XML format on "this page":http://blogs.msdn.com/b/brian_jones/archive/2005/06/27/433152.aspx. Could be a good start.

          CSV ist not an option, it's very cumbersome to read and write correctly. And the users receiving the CSV must take care of the correct settings (charset, delimiter, enclosing quotes and all that). That's error prone and the support for it is a nightmare - we all are developers, aren't we? :-) Also we need it in both directions (import Excel sheets of our users into our database and generate spread sheets for the users filled with our data).

          Unfortunately we also must support opening Excel files in the native (i.e. non-XML) format, otherwise we would had to convert them by hand. Giving xlsx to our users would be ok.

          http://www.catb.org/~esr/faqs/smart-questions.html

          1 Reply Last reply
          0
          • G Offline
            G Offline
            goetz
            wrote on last edited by
            #5

            We can have Jexcelapi on the server using java. No problem with that. This way we have to put everything to the server, but I want do do some things in the Qt/C++ based client.

            http://www.catb.org/~esr/faqs/smart-questions.html

            1 Reply Last reply
            0
            • X Offline
              X Offline
              xsacha
              wrote on last edited by
              #6

              [quote author="Volker" date="1291507360"]Unfortunately we also must support opening Excel files in the native (i.e. non-XML) format, otherwise we would had to convert them by hand. Giving xlsx to our users would be ok.[/quote]

              I believe Microsoft has a tool for converting non-XML to XML. You may be able to use it in a batch process.

              So you only need to get info out? You don't need to be able to edit it and save it? There are quite a number of tools to convert XML files in to other formats, I believe.

              • Sacha
              1 Reply Last reply
              0
              • G Offline
                G Offline
                goetz
                wrote on last edited by
                #7

                You did read of that "platform independent" thingy, didn't you? :) To be able to work on a Mac I cannot use the Microsoft tools. And of course that tool exists, it's called Excel :)

                http://www.catb.org/~esr/faqs/smart-questions.html

                1 Reply Last reply
                0
                • X Offline
                  X Offline
                  xsacha
                  wrote on last edited by
                  #8

                  I think it's a downloadable tool for people with old versions of Excel actually. Standalone. But yes, it was a Windows app.

                  You have Excel on "Mac":http://www.ehow.co.uk/how_6316841_convert-xls-xlsx-mac.html too :P

                  There may be a Mac app for this. Or you could try wine (or similar).

                  Probably make life much easier.

                  • Sacha
                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    goetz
                    wrote on last edited by
                    #9

                    Come on... you cannot force your commercial customers to install wine just to convert some crappy xls files :-)

                    Everthing other than a lib I can incorporate to my app is not acceptable; it's more pleasent for the user if we upload the files to the business logic server then.

                    http://www.catb.org/~esr/faqs/smart-questions.html

                    1 Reply Last reply
                    0
                    • X Offline
                      X Offline
                      xsacha
                      wrote on last edited by
                      #10

                      Alright, I guess since it is for paying customers it is best to treat them nice.

                      Good luck with your Excel API. I'm sure someone has written something like it for Qt somewhere. You checked Qt-Apps already and similar sites?

                      This can search Excel files: http://qt-apps.org/content/show.php/recoll?content=66138
                      But might not have the full API.

                      • Sacha
                      1 Reply Last reply
                      0
                      • G Offline
                        G Offline
                        goetz
                        wrote on last edited by
                        #11

                        I've searched around with google, got some things that might be interesting, but nothing with using Qt in the first search results. It's not on a very high priority at the moment, so no need to worry. I thought it's worth a try in this forum - if you don't ask, you won't get an answer...

                        http://www.catb.org/~esr/faqs/smart-questions.html

                        1 Reply Last reply
                        0
                        • Y Offline
                          Y Offline
                          Yash
                          wrote on last edited by
                          #12

                          There are 2 C++ libaries to create excel.
                          One is free xlslib : http://xlslib.sourceforge.net/
                          Other is commercial libXL : http://www.libxl.com/

                          Sorry for late response and I don't know whether you need this or not. But for others I share...

                          http://kineticwing.com : Web IDE, QSS Editor
                          http://speedovation.com : Development Lab

                          1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            goetz
                            wrote on last edited by
                            #13

                            Thanks for the links. libxl I will have a look into. xlslib unfortunately cannot read XLS files. This is the crucial part. Writing the files could be quite easily approached with the new XML based format (thats seems not too complicated as long as there are no formulas or cross references, which we do not need).

                            http://www.catb.org/~esr/faqs/smart-questions.html

                            1 Reply Last reply
                            0
                            • Q Offline
                              Q Offline
                              qtrahul
                              wrote on last edited by
                              #14

                              Another available option is to attempt to extract the code from an open source excel reading competitor.

                              Open Office - http://www.openoffice.org/ - is likely to be used,

                              Gnumeric is probably a better option.
                              Excel code is here - http://git.gnome.org/browse/gnumeric/tree/plugins/excel

                              1 Reply Last reply
                              0
                              • Y Offline
                                Y Offline
                                Yash
                                wrote on last edited by
                                #15

                                Libxls
                                libxls is a C library which can read Excel (xls) files. It has been tested on Linux x86 and Cygwin but may work on any little-endian system. ...
                                "libxls.sourceforge.net":http://libxls.sourceforge.net

                                [EDIT: clickable link, Volker]

                                http://kineticwing.com : Web IDE, QSS Editor
                                http://speedovation.com : Development Lab

                                1 Reply Last reply
                                0
                                • G Offline
                                  G Offline
                                  goetz
                                  wrote on last edited by
                                  #16

                                  Thanks for the link Yash, it looks promising. It could be a good start and maybe I find some time to make a Qt version.

                                  http://www.catb.org/~esr/faqs/smart-questions.html

                                  1 Reply Last reply
                                  0
                                  • P Offline
                                    P Offline
                                    Panke
                                    wrote on last edited by
                                    #17

                                    What's about KOffice? As far as I know they use MS -> OOo -> KOffice, but they might have a cuter API to the OOo routines since they are Qt-based.

                                    1 Reply Last reply
                                    0
                                    • G Offline
                                      G Offline
                                      goetz
                                      wrote on last edited by
                                      #18

                                      KOffice falls out due to license issues - unfortunately.

                                      http://www.catb.org/~esr/faqs/smart-questions.html

                                      1 Reply Last reply
                                      0
                                      • F Offline
                                        F Offline
                                        fcrochik
                                        wrote on last edited by
                                        #19

                                        [quote author="Yash" date="1293597766"]Libxls
                                        [EDIT: clickable link, Volker][/quote]
                                        Not yet....

                                        "libxls.sourceforge.net":http://libxls.sourceforge.net

                                        Certified Specialist & Qt Ambassador <a href="http://www.crochik.com">Maemo, Meego, Symbian, Playbook, RaspberryPi, Desktop... Qt everywhere!</a>

                                        1 Reply Last reply
                                        0
                                        • G Offline
                                          G Offline
                                          goetz
                                          wrote on last edited by
                                          #20

                                          Thanks - corrected * 2 :-)

                                          http://www.catb.org/~esr/faqs/smart-questions.html

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved