XEROF

 

xlsgen 4.5 preview #7 : Improved data type inference


A few months back, CSV import was improved by automatically inferring percent values in the data. That is whenever xlsgen would read a string such as "35%", xlsgen would actually store 0.35 in the current cell and associate a percent number format to it so it shows 35% in Excel and is a number.

With xlsgen 4.5, this automatic inference of percent values is extended to all other 3 input file types which are JSON, HTML and XML.

xlsgen 4.5 also introduces automatic inference for currencies. That is, if there is a string such as $340 or 340 €, xlsgen actually stores the corresponding number and asociates a currency number format to it. This works with all input file types, i.e. CSV, JSON, HTML and XML.

Overall, automatic inference differentiates numbers and strings, and disambiguates percent values and currency values. In other words, without any prior knowledge is the data being imported, xlsgen tries to understand what it imports and keep it usable in Excel.

Last but not least, CSV import now supports both files and memory buffers whereas before only files were accepted.


Posted on 02-November-2017 08:29 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #6 : Advanced OpenOffice output


OpenOffice output (.ODS files from the OpenOffice Calc application) has been available since xlsgen 2.9. But xlsgen 4.5 improves the output in more than twenty ways :

  • OpenOffice output support for conditions in number formats (such as [>100]##0).
  • write all conditional formattings in OpenOffice files (including databars, time condition, top, ...)
  • shapes in OpenOffice files have a proper width and height.
  • rich strings in cells are now created in OpenOffice files.
  • write vector shapes in OpenOffice files. And proper border styles for text boxes.
  • compatibility between LibreOffice and Apache's OpenOffice.
  • fixed position of comments in OpenOffice files.
  • fix for correctly creating pictures in OpenOffice files. The implementation could create negative offsets.
  • fix for correctly creating stand-alone charts in OpenOffice files.
  • improved default col width and row height and styles for OpenOffice files.
  • write row repeats when writing OpenOffice files instead of iterating over single rows (performance problems).
  • support text reading order in cells in OpenOffice files.
  • better chart position and size in OpenOffice files. Also pie3D can be created.
  • correct chart types in OpenOffice files.
  • axis formatting in charts in OpenOffice files.
  • support data label and marker formatting in charts in OpenOffice files.
  • data points in charts in OpenOffice files.
  • support for trendlines and error bars in charts in OpenOffice files.
  • support for secondary axis and chart types in OpenOffice files.
  • pivot tables for OpenOffice files.
  • support for in-memory scenarios for OpenOffice files.
  • more versatile shape border width for the OpenOffice ODS output.


Posted on 01-November-2017 08:24 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #5 : Traffic lights and gauges




Traffic lights and gauges need not much explanation. They can be programmatically set to reflect levels or states that are part of business decision making.

Contrary to other visual components in xlsgen (vu-meter, sparklines, google charts, geomaps, ...), whole arrays of traffic lights or gauges can be created in the same bounding area, not just one.


NameTypeDescription
SetGreenThresholdinteger or doublevalue below which traffic light signals green. Default value is 0.
SetOrangeThresholdinteger or doublevalue around which traffic light signals orange. Default value is 50.
SetRedThresholdinteger or doublevalue above which traffic light signals red. Default value is 100.
SetVerticalbooleanforce the orientation of the traffic light(s)
SetValueinteger or double (or range of integers or doubles)value itself or range of values.
SetTitlestring (or range of strings)title or range of titles.
ResetValuesNonedeletes current value(s).


Here is how to create traffic lights :



C/C++ code


xlsgen::IXlsEnginePtr engine( __uuidof(xlsgen::CoXlsEngine) );

xlsgen::IXlsWorkbookPtr wbk = engine->New( L"trafficlights.xlsx" );

xlsgen::IXlsWorksheetPtr wksht = wbk->AddWorksheet( L"Sheet1" );

xlsgen::IXlsVisualComponentPtr comp = wksht->NewVisualComponent(L"TrafficLight.ARsTdesign.1",
2,5, // row1, col1
6,8, // row2, col2
0,0,0,0);

// three traffic lights
comp->ParameterByName[L"SetValue"]->Formula = L"={80;50;70}";
comp->ParameterByName[L"SetTitle"]->Formula = L"={\"my title (80)\";\"2nd title\";\"3rd title\"}";

wbk->Close();



Posted on 31-October-2017 07:55 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #4 : XML import


xlsgen imports structured data inside an XML file/stream/buffer with and without XPath selection. xlsgen provides auto-import and custom-import. Auto-import infers table columns as well as data types. Custom import lets you add personal formatting, particularly number and color formatting.

Auto-import XML files is achieved by passing an XML file (local or url) to the engine Open() method. Auto-import will find structured data inside the XML document.

For instance here is a sample XML document, a bookstore holding a number of books :

<?xml version="1.0" encoding="UTF8"?>
<Bookstore>
<!--J&R Booksellers Database-->
<Book Genre="" In_Stock="Yes">
<Title>The Round Door</Title>
<Author>Tom Evans</Author>
<Year_Published>1996</Year_Published>
<ISBN>0-9546-0274-3</ISBN>
<Price>$23.00</Price>
<Review>An Intriguing Tale Of A Round Door In A Wall</Review>
</Book>
<Book Genre="Non-Fiction" In_Stock="Yes">
<Title>Creating Real Xml Applications</Title>
<Author>Bill Eaton</Author>
<Year_Published>1998</Year_Published>
<ISBN>7-4562-0167-8</ISBN>
<Price>$35.00</Price>
<Review>A Look At How To Build Real Xml Applications</Review>
</Book>
<Book Genre="Fiction" In_Stock="No">
<Title>Over The Hills Of Yukon2</Title>
<Author>Bert Colewell</Author>
<Year_Published>1993</Year_Published>
<ISBN>5-6524-3054-1</ISBN>
<Price>$22.00</Price>
<Review>A Warm Story About A Man And A Moose In Yukon</Review>
</Book>
<Book Genre="Fiction" In_Stock="Yes">
<Title>The Lion's Gold</Title>
<Author>Daphne Griswald</Author>
<Year_Published>1989</Year_Published>
<ISBN>6-7896-2498-2</ISBN>
<Price>$15.00</Price>
<Review>One Of The Most Compelling Books Since "The Tiger's Silver".</Review>
</Book>
</Bookstore>


In order to import the books into a spreadsheet, the following sample code can be used :

VB/VB.NET code

Dim engine
Set engine = CreateObject("ExcelGenerator.ARsTdesign")

Dim wbk As IXlsWorkbook
Set wbk = engine.Open "C:\tmp\Bookstore.xml", "output.xlsx"
wbk.Close



XML document imported in xlsgen

Custom-import is available in the worksheet import interface. If for the need of an application, the structured data must be filtered or selected inside the XML document, it is possible to pass an XPath selector, which is available in the custom-import interface.

Here are XPath selection examples :

  • /Bookstore/Book
    Fully qualified path to the XML elements of interest. In the example above, this is the list of all 4 books.

  • //Book
    XML elements of interest that are direct or indirect descendant. In the example above, this is the list of all 4 books.

  • /Bookstore/Book[2]
    2nd element of the XML element list of interest. In the example above, this selection includes the book by Bill Eaton

  • /Bookstore/Book[2,3]
    2nd and 3rd elements of the XML element list of interest. In the example above, this selection includes the books by Bill Eaton and Bert Colewell



And here is the corresponding source code :


VB/VB.NET code

Dim engine
Set engine = CreateObject("ExcelGenerator.ARsTdesign")

Dim wbk As IXlsWorkbook
Set wbk = engine.New( "output.xlsx" )

Dim wksht As IXlsWorksheet
Set wksht = wbk.AddWorksheet( "Sheet1" )

wksht.Import.XML.Options.XPath = "/Bookstore/Book"
wksht.Import.XML.ImportFile( "C:\\tmp\\Bookstore.xml" )

wbk.Close



Posted on 30-October-2017 09:42 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #3 : Native PDF charts


As the name implies, bitmap charts get a less than desirable "pixelized effect" at almost any zoom level, whereas native charts scale to whatever zoom level. Also, when native charts are written in PDF files, they produce much smaller file size output than bitmaps. Consume less memory, and they are faster to generate and render.



On the left, bitmap charts at 400% zoom. On the right, native PDF charts at 400% zoom

Posted on 29-October-2017 12:43 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #2 : R programming environment




R programming, or as their originators call it a freely available language and environment for statistical computing and graphics which provides a wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, etc.

R programming has become popular not just among scientists but among many corporations and hobbyists for one reason : it is an open platform. Anyone can write and publish a R package in order to extend the features and remain free to host the packages on their website, i.e. the authors of R do not have a say on the packages, unlike application stores one can find with Apple, Google and Microsoft. Plus, R itself is an open source project, meaning that anyone can recompile the source code and modify it to meet their needs.

With the R programming environment installed, xlsgen can interface with it by letting any client application evaluate R statements, pass data, that is from an Excel range to a R data frame, and vice versa.

workbook.R_Programming.Eval(L"myVector <- c(1,2,3,4)"); // create a R vector of 4 numbers

Posted on 28-October-2017 09:23 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.5 preview #1 : OpenOffice becomes first-class citizen




xlsgen 4.5 can read OpenOffice files whether they are generated from Apache's OpenOffice, The document foundation's LibreOffice and third parties. By OpenOffice files is meant OpenOffice calc files, which are .ODS files. Of course xlsgen supports the in-memory variants, so it can read a memory buffer storing the contents of an .ODS file.

Support for objects from .ODS files is fairly extensive :

  • cells
  • formatting (number format, alignment, borders, fill, font, other properties)
  • rich strings
  • formulas
  • defined names and external references
  • row and column formatting, merged cells
  • conditional formattings (cell, formula, date-based, text-based, time-based, top/bottom, duplicate, error-based)
  • advanced conditional formattings from LibreOffice (data bars, iconsets and color scales)
  • worksheet properties (selection, hidden, ...)
  • freeze / split, page breaks
  • header and footer
  • hyperlinks
  • pictures
  • charts (all chart types and subtypes, all formatting properties)
  • comments, text boxes, vector shapes, complete with their formatting properties


.ODS files, whether created from The document foundation's LibreOffice or Apache's OpenOffice, are evolving at their own pace. The document foundation's LibreOffice is more advanced than Apache's OpenOffice in a number of ways, most notably conditional formattings, where Apache's OpenOffice has support for only the two conditional formatting types (cell-based and formula-based). It's up to the corresponding open source project contributors to try to put the two on par. xlsgen reads as much as it can from those files.

Another scenario that is supported is the update of existing .ODS files using xlsgen, by reading and writing back to an .ODS file or memory buffer, as in :

VB code
Dim engine As CoXlsEngine
Set engine = CreateObject("ExcelGenerator.ARsTDesign")

' read and write an existing .ODS file
Dim wbk As IXlsWorkbook
Set wbk = engine.Open "MyFile.ods", "MyFile.ods"

wbk.Close

Set engine = Nothing



xlsgen can also migrate an .ODS file to a .XLSX file for instance and vice versa.

Posted on 27-October-2017 11:30 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

Qui sera le Robert Scoble français?


Devant la folie délatrice qui s'est emparée des médias, pour lesquels pourtant d'habitude Twitter n'est qu'un déversoir à fiel, cette histérie qui vise à condamner par média interposé ce qui aurait dû faire l'objet d'une lutte verbale au moment du dit acte d'abord, et ensuite éventuellement d'un dépôt de plainte, je suis réjoui pour ma part de l'intervention d'un geek du web comme Robert Scoble.

Pourquoi? D'abord parce que sa recension des faits montre un partage des responsabilités et dans certains cas une dénonciation du caractère mensonger des actes d'agression sexuelle ou harcèlement sexuel qui ne sont là que comme cache-sexe d'une vengeance ou d'une volonté de nuire.

Mais mieux encore, sur la définition du harcèlement sexuel car Robert Scoble insiste sur le fait que les personnes concernées n'étaient pas ses employées et qu'elles n'avaient aucun lien de subordination ou de capacité de défaire leur carrière.

extrait : "I have rejected my lawyer’s advice to not make a statement and in a spirit of healing I would like to address the issue head on with open and honest dialogue. (...) None of the women who came forward were ever in a position where I could make or break their careers. Sexual Harassment requires that I have such power. "


Evidemment, ça change tout. L'affaire Weinstein est claire, car les actrices sont dans une relation de subordination. Weinstein est leur patron pour un certain nombre d'entre elles.

Mais utiliser un cas particulier pour lancer un meme hystérique et délatoire, il y a pourtant un pas que l'intelligence des femmes devraient pourtant inciter à ne pas franchir. Faut-il en déduire que les femmes d'aujourd'hui sont en fait plus connes que leurs mères? Qu'en fait, à force de vouloir être l'égal des hommes, les femmes y perdent?

Et là dedans, pourquoi les médias tiennent-ils ce rôle? Pourquoi versent-ils de l'huile sur le feu en reprenant les tweets et en fabriquant des talk shows à leur gloire?

Posted on 27-October-2017 08:10 | Category: France | comment[0] | trackback[0]

 

The road to xlsgen 4.5



A new major upgrade to xlsgen is about to ship.

In xlsgen 4.0, support for a number of additional objects was added. Because those objects came often with a few tweek capabilities, this caused a lot of new API to be made public, which you can review in our page over at what's new in 4.0?

In 4.5 a number of objects are added. It happens that many of those objects require a lot less API and it has therefore become the general theme in 4.5. For instance, whenever a new input file format is supported, no new API is exposed and there is nothing new to learn. Ditto for an output format. Ditto for general advances in core xlsgen engines such as the rendering, or whenever we are adding new engines which happen to rely on standard third-parties.

There is hope that xlsgen becomes seen for what it is, that is more than a general purpose Excel file generator. It has been such a thing for a number of years, but it so happens that every new customer has a different need and it is perhaps not always obvious what products can do to meet your needs and how far they can push you.

Posted on 27-October-2017 00:23 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.0.0.108 : Fix for phonetic runs


Build 4.0.0.108 of xlsgen fixes a problem related to reading phonetic runs in strings in XLSX files.

Posted on 26-October-2017 09:23 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

Microsoft explanations for failed strategies misses the point


These days, Microsoft spokepersons and cheerleaders are trying to justify past and present failed strategies from Microsoft, particularly related to Windows phone.

I think it lacks common sense.

In the middle 80s, Microsoft grew in popularity very fast because Windows was an open OS. Being an open OS, any software developer could sell their software directly to customers without Microsoft having a say. This is clearly not the case anymore : the Windows store is a closed "ecosystem", where Microsoft has a say in everything. Microsoft decides your fate, and there is no denying this has been a tremendous factor for software developers to stop caring and trusting Microsoft so-called technologies.

This culminates by the way to today's Windows telemetry, where Microsoft gathers in real-time the log of all your applications, and potentially user identifiable data. To me, as a software developer, I simply cannot support Windows 10. It's a matter of morale and principle. Apparently many software developers around the world feel the same, because the then Windows 8 API and now Windows 10 API is not exactly being embraced en masse. Quite the contrary.

The other point is that the open platform from the 80s became so much a virtuous circle for Microsoft that they became a distribution monopoly, with extreme power : you could not buy a PC without a Windows license. And you could not have a Windows license without an Internet Explorer install set as default web browser. Perhaps this went a little too far since by early 2000 many customers, even those completely engulfed, started questioning the merit of all this.

Posted on 10-October-2017 11:23 | Category: anti-Microsoft | comment[0] | trackback[0]

 

L'iPhoneX est-il un téléphone ?


J'écris ci-dessous les caractéristiques indiquées par Apple lors de sa conférence au cours de laquelle l'iPhone X a été annoncé :


5.8" super retina display
glass and stainless steel design
face ID
12 MP dual camera with dual OIS
true depth camera
A11 bionic
quad-led true tone flash
slow sync flash
portrait mode (front and back)
portrait lightning
animoji
LTE advanced
bluetooth 5.0
stereo speakers
water and dust resistant
wireless charging
fast-charge capable


A part LTE advanced, aucune des caractéristiques ne fait penser à un téléphone. Or, il se trouve que cet appareil est vendu pour passer des appels téléphoniques et envoyer des SMS, pour l'usage majoritaire.

Il y a donc tromperie sur marchandise.

6 caractéristiques sont liées à l'aspect prise de photo. Si vous voulez faire de belles photos, achetez plutôt un appareil photo. Vous aurez du zoom, et ça change tout.

Posted on 08-October-2017 20:51 | Category: France | comment[0] | trackback[0]

 

L'échec de Snowden absolument parfait !


A tous ces trous du cul de pseudo-pirates qui se croient plus forts que les autres, plus dénonciateurs de l'injustice que les autres, voici un beau retour de la réalité de ce qu'est Snowden en réalité :

- échec total du débat public sur la surveillance généralisée des populations

- promulgation de la surveillance généralisée (et même plus automatisée que jamais) dans de nombreux états démocratiques depuis les révélations des agissements de la NSA

- Snowden qui retweete des images de violence lors du pseudo-référendum en Catalogne.

La preuve que l'intelligence de ce type n'est qu'au service du gauchisme le plus crétin qu'il soit. A ce rythme là, on imagine sans mal comment la NSA et le grand capital vont bientôt pouvoir utiliser Snowden à leur avantage.

Un comble !!!

Posted on 04-October-2017 00:35 | Category: News | comment[0] | trackback[0]

 

xlsgen 4.0.0.107 : Fix for calculating dimensions


Build 4.0.0.107 of xsgen fixes a problem related to calculating sheet dimensions. An uninitialized merged cells structure could return incorrect results.

Posted on 22-September-2017 11:34 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

The difference between biometrics and touch


When Apple introduced the iPhone X with great fanfare last week, it did a lot more than what most people think.

First of all, it introduced for the first time a reliable mechanism that is normally used by policemen. Face recognition is an active tool of a police state, of a surveillance state.

This device therefore will make it natural to the next generation that showing your face is not a symptom of a police state, but fun and perhaps even a game. Critically, children will get accustomed to it. And that's the very goal. Any tyranic government could not be happier. France, particularly, is having it. It's time to re-read Noam Chomsky's "manufacturing consent" and La Boetie's "éloge de la servitude".

Second, there is a philosophical difference between face recognition and touch. Face recognition by definition is an entire process you submit to by being subject to it, that is you are never controlling it, never mastering it. Your face can be identified hundred times a day without you knowing it and, obviously, without consenting it at all. In other words automatic face recognition is your worst enemy. It's like driving a vehicle versus being driven by an automatic vehicle. Who is in control?

I think Apple can pride themselves of the act of remanufuring military and police technologies made by others and for different purposes because by making us think this is fun and cool. Perhaps even an act of liberation worth a thousand dollars. But if Apple is let doing such thing, it's because the police state wants it and Apple acts as one of its arms, much like Microsoft with many of their services (you should avoid Microsoft services, it is a matter of safety). If Apple was willing to sale devices that could protect your privacy and let you remain in control of what is going on and your personal data, it's no wonder Apple would have problems shipping it at all.

You can make the conlusion very easily I think. I think Apple should add "Arbeit macht frei" below their Apple logo.

Posted on 22-September-2017 09:43 | Category: News | comment[0] | trackback[0]

 

xlsgen 4.0.0.106 : Fix for reading corrupt objects


Build 4.0.0.106 of xlsgen fixes a problem related to reading corrupt objects in Excel files. Additional protection is added to avoid that the problem within the file is exposed to the client application.

Posted on 21-September-2017 14:17 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

anti-Apple : iPhone 10 beyond marketing lies


This week, the despicable Apple got two hours of free marketing on news networks globally, where it took the chance to tell lies.

The iPhone 10 is defined specifically as "edge-less", "edge-to-edge" and similar words.

First of all, it is demonstrably a lie, since there is clearly an edge when they showed it.

But this is demonstrably false for engineering reasons. The screen sports a so-called "super retina display", which in fact is a different ratio than previous iPhone screen display ratios, which means a ratio different than HD.

HD ratio = 1280/720 = 1920/1080 = 1.777777

iPhone 5, 6, 7, screen display ratio = 1136/640 = 1334/750 = 1920/1080 = 1.7777

iPhone 10 screen display ratio = 2436/1125 = 2.165333

You guessed it, if you watch a HD video on an iPhone 10, in landscape mode, you'll see black borders because there is no way the new screen accomodates an HD ratio without stretching it.

So by its very definition alone, the "edge-less iPhone" is a big fat lie.

I'm generous to not take a look further at their other claims...

Posted on 15-September-2017 19:46 | Category: News | comment[0] | trackback[0]

 

xlsgen 4.0.0.105 : Fix for multi-threading


Build 4.0.0.105 of xlsgen fixes a race condition which in multi-threading scenarios could have caused a crash, when setting passwords to open protected workbooks.

Posted on 03-September-2017 00:23 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.0.0.104 : Improved clipboard


Build 4.0.0.104 of xlsgen improves how the copy to clipboard feature works when a range is copied from an XLSX or XLSB file to the Windows clipboard. There was no problem when the range was being copied from an XLS file.

Posted on 31-August-2017 10:40 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

xlsgen 4.0.0.103 : Unicode fix for XLSX files


Build 4.0.0.103 of xlsgen improves the filepath Unicode support in XLSX scenarios. An internal filepath string conversion did not always work well (Chinese).

Posted on 29-August-2017 19:41 | Category: xlsgen, Excel generator | comment[0] | trackback[0]

 

 

<-- previous page

< July >
0102030405
0607080910
1112131415
1617181920
2122232425
2627282930
31



 

 

This site
Home
Articles

DevTools
CPU-Z
EditPlus
ExplorerXP
Kill.exe
OllyDbg
DependencyWalker
Process Explorer
autoruns.exe
Araxis
COM Trace injection
CodeStats
NetBrute
FileMon/Regmon
BoundsChecker
AQTime profiler
Source monitor
GDI leaks tracking
Rootkit revealer
Rootkit removal
RunAsLimitedUser(1)
RunAsLimitedUser(2)

 

 

Liens
Le Plan B
Un jour à Paris
Meneame
Rezo.net (aggr)
Reseau voltaire
Cuba solidarity project
Le grand soir
L'autre journal
Le courrier suisse
L'Orient, le jour
Agoravox (aggr)