Best Ipa Library

1 view
Skip to first unread message

Laura N Gerard

unread,
Jul 26, 2024, 1:29:13 AM7/26/24
to TEPEBASI-RAM REHBER OGRETMENLER MAIL GRUBU

Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.

In one of our ASP.NET applications in C#, we take a certain data collection (SubSonic collection) and export it to Excel. We also want to import Excel files in a specific format. I'm looking for a library I can use for this purpose.

Right now, I am using a simple tool that generates HTML that is loaded by Excel later on, but I am losing some capabilities, plus Excel complains when we load it. I don't need to generate charts or anything like that, just export raw data.

I am thinking of flat CSV files, but Excel is a customer requirement. I can work with CSV directly, if I had a tool to convert to and from Excel. Given Excel 2007 is an xml-based (and zipped) file format, I am guessing this kind of library should be easy to find. However, what matters most to me are your comments and opinions.

EDIT: Ironically, in my opinion and following the answer with the most votes, the best Excel import&export library is no export at all. This is not the case for all scenarios, but it is for mine. XLS files support only 64k rows. XLSX supports up to 1M. The free libraries that I've tried feature bad performance (one second to load one row when you have 200k rows). I haven't tried the paid ones, as I feel they are overpriced for the value they deliver when all you need is a fast XLSXCSV conversion routine.

I discovered the Open XML SDK since my original answer. It provides strongly typed classes for spreadsheet objects, among other things, and seems to be fairly easy to work with. I am going to use it for reports in one of my projects. Alas, version 2.0 is not supposed to get released until late 2009 or 2010.

I'm going to throw my hand in for flat csv files, if only because you've got the greatest control over the code. Just make sure that you read in the rows and process them one at a time (reading the document to the end and splitting will eat up all of your memory - same with writing, stream it out).

ClosedXML makes it easier for developers to create Excel 2007/2010files. It provides a nice object oriented way to manipulate the files(similar to VBA) without dealing with the hassles of XML Documents. Itcan be used by any .NET language like C# and Visual Basic (VB).

CSV export is simple, easy to implement, and fast. There is one potential issue worth noting, though.Excel (up to 2007) does not preserve leading zeros in CSV files. This will garble ZIP codes, product ids, and other textual data containing numeric values.There is one trick that will make Excel import the values correctly (using delimiters and prefix values with the = sign, if I remember correctly, e.g. ..,="02052",...).If you have users who will do post-processing tasks with the CSV, they need to be aware that they need to change the format to XLS and not save the file back to CSV. If they do, leading zeros will be lost for good.

For years, I have used JExcel for this, an excellent open-source Java project. It was also .NET-able by using J# to compile it, and I have also had great success with it in this incarnation. However, recently I needed to migrate the code to native .NET to support a 64-bit IIS application in which I create Excel output. The 32-bit J# version would not load.

The code for CSharpJExcel is LGPL and is available currently at this page, while we prepare to deploy it on the JExcel SourceForge site. It will compile with VS2005 or VS2008. The examples in the original JExcel documentation will pretty well move over intact to the .NET version.

I know this is quite late, but I feel compelled to answer xPorter (writing) and xlReader (reading) from xPortTools.Net. We tested quite a few libraries and nothing came close in the way of performance (I'm talking about writing millions of rows in seconds here). Can't say enough good things about these products!

Have the code behind the button use the "native" Excel API (via Add-in Express) and push direct into the recipient system. You can't get much more transparent for the developer or the user. Worth considering.

You could try the following library, it is easy enough and it is just a light wrapper over Microsoft's Open XML SDK (you can even reuse formatting, styles and even entire worksheets from secondary Excel file) :

Spreadsheetgear is the best commercial library we have found and are using. Our company does a lot of advanced excel import and export and Spreadsheetgear supports lots of advanced excel features far beyond anything you can do with simple CSV, and it's fast. It isn't free or very cheap though but worth it because the support is excellent. The developers will actually respond to you if you run into an issue.

I'm new to Python completely and am using Python 3.1 on Windows (pywin). I need to parse some HTML, to essentially extra values between specific HTML tags and am confused at my array of options, and everything I find is suited for Python 2.x. I've read raves about Beautiful Soup, HTML5Lib and lxml, but I cannot figure out how to install any of these on Windows.

Although Beautiful Soup is oft recommended (every question regarding web scraping with Python in Stack Overflow suggests it), it's not as good for Python 3 as it is for Python 2; I couldn't even install it as the installation code was still Python 2.

If your HTML is well formed, you have many options, such as sax and dom. If it is not well formed you need a fault tolerant parser such as Beautiful soup, element tidy, or lxml's HTML parser. No parser is perfect, when presented with a variety of broken HTML, sometimes I have to try more then one. Lxml and Elementree use a mostly compatible api that is more of a standard than Beautiful soup.

In my opinion, lxml is the best module for working with xml documents, but the ElementTree included with python is still pretty good. In the past I have used Beautiful soup to convert HTML to xml and construct ElementTree for processing the data.

I do not have have direct experience with BeautifulSoup under Py3k (although this soon should change...). I just read, however, that Version 3.1.0 of Beautiful Soup does significantly worse on real-world HTML than its previous versions, so I may try and wait if possible (i.e. stay with Python 2.6 a bit longer).

i'm working on a compact nano based device to connect to an on-board data-logger on a very small autonomous aircraft. I want it to display gps and sensor data, and by pushbutton action, dump contents of on-board SD to device mounted SD. The purpose of the display is to confirm sensor, auto-pilot, stabilization, GPS and sensor operation pre-flight.

I just wrote my own code, it is not in a library.
I made my own fonts. It is just numbers and letters.
I'd have to extract it from my code but you are welcome
to it, if you'd like.
I used it mostly for debugging other code that I output
to a 1602 but needed a separate place to print other stuff.
Dwight

Sounds like I don't have as much work to do.
I'd have to look at mine again. It may not be a small as
I though.
I'd also used the display for a pong game and on the 2560.
For ease of doing animation, I have an entire RAM buffer
for every bit of the display.
I don't recall if I did the text through that RAM buffer or not.
I know it didn't start that way but I may have done that
over time.
That buffer is really large.
I made it a little large for both displays as well ( 1106 and 1306 ).
I just looked at my code, I made two buffers ( 1056 each ).
Not too portable to a smaller machine.
Dwight

Hey Dwight, I'd like to see your oled code! I've looked at the adafruit code, and while I am VERY pleased with the speed, the memory hit is a bit much. If you think your code can be rewritten using a smaller buffer, it could be VERY useful. Please post it, ot perhaps a link?

Thanks jboyton. I installed the SDA1306Ascii library and it works well. I especially like all the font choices! One of my applications uses graphics, but the other one (a gps) is strictly text. It'll take a bit of work, but I'm gonna convert over to the new library for that device, I think it will be a big improvement cause it'll let me put more features in.

I am building a project with an oled display and am attempting to create a basic menuing system. I will use a standard rotary encoder to navigate it. I am looking for advice on a wicked awesome rotary encoder library.

I would love to find that perfect library that would make it very easy to deal with the encoder. It would be awesome if it was a simple as looking for objectname.turnedLeft() or objectname.turnedRight(). Of course I need for it to be non-blocking, but I don't have a preference of interrupt driven or not (unless you guys have a preference that you could impart that knowledge to me).

Additionally, it would be cool, though not necessary, if it had a fast mode or something so that if you turned it fast it would "fire" / "make available" additional turnedLeft() or turnedRight() = trues to cause speed up functionally.

Otherwise get lots of ram (128GB here which the extreme line makes easy with 8 slots) and most importantly, NVMe. Put all your libraries on stick(s). With this you can run any library you wish, and this particular configuration makes scrolling, moving and editing a big score really fast. Any other solution is slow with a 3rd party library, I use BBCSO.

Thanks, but I have a Focusrite RED interface and they specify compatibility with Intel TB only, and a subset of TB versions at that. This board it looks like which only has 4 memory sticks. The Intel line boards have 8 which means you can get 128 without costing a fortune

It depends on your intended use Gentian - best is a very subjective measure! Some packages are designed to directly simulate biological neuronal behaviour and firing potentials in the brain for the purposes of neuroscience research only.Others are more pragmatic in terms of their applied use as a computer / data science tool, and as a useable alternative to "traditional" deep neural networks/ANNs.

Reply all
Reply to author
Forward
0 new messages