Build 4.5.0.55 of xlsgen improves the import from CSV, XML, JSON and HTML files, by adding the ability to split columns. Let's take an example of a data table including a person's name. This name often differentiates the first and last name in different columns, ie : Data with first and last names in separate columnsBut sometimes both are in the same column, separated by a special character, here a comma : Data with both first and last names in the same columnIn the latter case, xlsgen can import the data in separate columns. The mechanism is available for all import file formats, ie CSV, XML, JSON and HTML. VB code |
' import a CSV file, split Name column in two First name and Last name columns
Dim wbk As xlsgen.IXlsWorkbook Set wbk = engine.New("ResultingFile.xlsx")
Dim wksht As xlsgen.IXlsWorksheet Set wksht = wbk.AddWorksheet("Sheet1")
Dim cs As xlsgen.IXlsImportColumnSplitter Set cs = wksht.Import.CSV.Options.ColumnSplitByName("Name")
cs.SplitBySeparator = "," cs.AddColumn("First name") cs.AddColumn("Last name")
wksht.Import.CSV.ImportFile ("datasource.csv")
|
Other than splitting based on a special character, the split can be based on a string length. For instance, if you know the data is made of 3 pieces of 10 characters each, you can set SplitByLength to 10. Each split column can have its own style and number format. This is specified in the IXlsImportColumnSplit interface. |  |  | Posted on 28-March-2019 11:50 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Les gros opérateurs annoncent les uns après les autres des services de cloud gaming, entendez par là un service permettant de jouer à distance en haute résolution avec des ordinateurs modestes, à la limite avec juste un navigateur web.
C'est une énorme supercherie.
Officiellement, la cible ce sont les gens qui n'ont pas les moyens d'avoir un ordinateur puissant capable de faire le rendu graphique haute résolution des jeux tout en préservant un niveau élevé de fréquence d'affichage (60 images par secondes minimum pour ne pas ressentir de freinage visible). La cible est donc les gens modestes.
De l'autre, pour pouvoir non pas faire du rendu haute résolution, mais le diffuser à l'utilisateur, il faut que l'utilisateur possède une connection type fibre. Hors, pour la plupart des gens sur la planète, la fibre n'est qu'un rêve, et par ailleurs ceux qui vivent au coeur des grandes métropoles et qui disposent éventuellement de la fibre optique sont ceux qui ont les moyens de s'acheter le fameux ordinateur puissant. Donc, précisément, pas la cible.
Par ailleurs, il y a un décalage dans l'évolution des prix des configurations PC chères car il est désormais possible de s'offrir pour moins de 300 euros une carte graphique surpuissante, pour équiper un PC modeste. Le cloud gaming se fait donc couper l'herbe sous le pied par les configs gaming pas chères.
Alors pourquoi ? pour deux raisons. La première, c'est que les gros opérateurs veulent s'insérer comme intermédiaire dans le plus de marchés possibles, en particulier dans ceux qui rapportent du fric, comme celui du jeu vidéo. Etre intermédiaire, quand on a les reins solides, ça veut dire à terme pouvoir dicter ses règles et son prix. Quand on s'appelle Google ou Amazon, ce n'est pas rien. On a vu ce que ça donne dans le e-commerce.
Et pour des gens comme Facebook, être intermédiaire de ce genre de choses, c'est pouvoir créer du data mining supplémentaire.
En réalité, au delà de la supercherie, au delà de l'aspect non genuine de ces annonces, il faut comprendre que ce dont ont besoin les joueurs aujourd'hui, ce sont de plus gros serveurs de match making notamment pour les battle royale qui est une niche multi-joueurs en devenir. Et la dernière chose dont ont besoin les éditeurs de jeux vidéos, c'est d'avoir un intermédiaire qui se mette entre eux et les joueurs. Intermédiaire qui a des chances de rapidement venir prendre sa part de rémunération, alors que rien n'est plus intéressant et légitime qu'une relation la plus directe possible entre les éditeurs et les joueurs.
Sur le fond comme sur la forme, le cloud gaming est un non-sujet. Passez votre chemin.
|  |  | Posted on 22-March-2019 11:37 | Category: France | comment[0] | trackback[0] Build 4.5.0.54 of xlsgen fixes a problem that was introduced by the previous build 4.5.0.53 related to the isolated server (xlsgen.exe). Late-binding programming languages (VBScript and JScript) were not working anymore because the type libraries used to marshall calls were not loaded prior or during the first call.
|  |  | Posted on 12-March-2019 19:35 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Il y a le business de facebook, que tout le monde connait. Et il y a l'autre, moins public. Voilà en deux temps comment ça s'articule. Une startup nommée SendBird crée un moyen d'intégrer un module de discussion en temps réel dans des applications. On se dit ce truc soit on le développe en interne, et ça prend 48 heures, ou alors on intègre quelque chose fait ailleurs pour un montant dérisoire. La startup en question, qui devrait être dans l'incapacité de vivre tant ce bout de code a peu de valeur sur le plan technique, annonce néanmoins une énorme levée de fond, de pas moins de 52 millions de dollars. Et là on se dit forcément, il y a anguille sous roche. Pourquoi des investisseurs mettent autant de fric dans un truc purement technique à la base, et qu'on pourrait trouver gratuitement d'ailleurs dans un projet open source quelconque ? C'est que, on comprend par l'énormité de la somme, que ce n'est pas la technique qui est valorisée là. Evidemment que c'est les eye balls comme on dit pour ne pas dire l'historique des communications de tous les gens qui utilisent ce module de discussion sans rien suspecter sur ce qui en est fait derrière. Et pour être bien sûr que les choses sont claires, qui trouve-t'on dans les investisseurs ? Un certain mark zuckerberg... Au moins les choses sont dites, mais je réprouve dans ces conditions la légitimité même de cette startup. Ainsi, dans sa page "About", cette startup indique : extrait : "As a company whose origin is in messaging solutions, we are beginning with messaging in text. But our mission is to bring the freedom, accessibility, and value that digitizing human interactions can offer to all people." La liberté ? La liberté de se faire méthodiquement pister, oui c'est sûr... |  |  | Posted on 25-February-2019 11:46 | Category: France | comment[0] | trackback[0] Build 4.5.0.53 of xlsgen introduces a special mode, the keep mode, for the isolated server (xlsgen.exe). When used, the keep mode avoids that the working process kills itself after the running engine instance is out of scope (the scope is under the control of the client application). This mode also enforces strict apartment related to COM object method call marshalling. How to activate this mode ? Just register the isolated server as a COM object using a command-line script, adding the /K option to it, as in : <path>\xlsgen.exe /K /REGSERVER Put this in a .BAT file, then right-click on it and choose Run as Administrator. Upon registration, a message box appears to confirm completion. |  |  | Posted on 13-February-2019 12:32 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.52 of xlsgen improves the import of all 4 input file formats namely CSV, XML, HTML and JSON. When custom data mapping was introduced in build 4.5.0.4, meaning that you can pass a number format for any given column of data being imported, we said that chances are that we would, in the long run, end up having some kind of AI or intelligent automatic inference that would figure it the data it is importing, and would therefore infer the number format itself. That's what build 4.5.0.52 brings to the table. Not a single line of code is needed. Let's say in the data you import, there is a "length" column with a number of kilometers to it, ie : 12 kms 15 kms 50 kms 75 kms ... Since build 4.5.0.4, if you want this data to be imported as numbers and retain this "kms" suffix, you would pass it like this to the import engine : options.ColumnDataMappingFormatByName[L"length"] = "0 \"kms\""; With build 4.5.0.52, this line of code is not needed anymore. It is magically inferred. And it works the same for all CSV, XML, HTML and JSON files. |  |  | Posted on 12-February-2019 10:24 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.51 of xlsgen brings a number of improvements to all of the 4 input file formats, i.e. CSV, XML, HTML and JSON.
The improvements are :
- improved usage of # and 0 when automatically inferring the type and number format of data that appear to be numbers (integer or float)
- improved currency detection when automatically inferring the type and number format of data that appear to be currencies, that is, numbers with an accompanying currency symbol
- improved disambiguation of date, time and date+time when automatically inferring the type and number format of data that appear to be date or time related
- better import of different data types inside the same column
Overall, when you are importing a CSV file, an XML file, an HTML file or a JSON file, the automatic import engine works better at finding the actual data types and tries a lot inferring an appropriate number format, resulting in data that are imported correctly and are therefore ready for calculations and charting. Of course, any custom option that may be set before the Import statement takes precedence over what is automatically inferred, letting a client application really control how data is imported.
|  |  | Posted on 12-February-2019 10:15 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Ca ne trouble personne manifestement que les start-ups ont pour objectif de disrupter des business établis, des monopoles et qu'aucune start-up ne s'est réellement attaqué à ce marché vicié qu'est l'immobilier. Ainsi l'excellent titre de l'article du New york times : extrait : "A lot of tech startups have promising ideas to fix the housing crisis, but the fundamental problem of affordability seems beyond their reach" J'ai ma petite idée sur la question. Et en tout cas, je pense que 99% des start-ups sont en réalité des pussy lorsqu'elles ne s'attaquent pas aux citadelles imprenables. Peut-être est-ce d'ailleurs une conséquence de la féminisation de la société. Qu'on ne me parle plus de start-ups, c'est pathétique. |  |  | Posted on 31-January-2019 11:19 | Category: France | comment[0] | trackback[0] Remember Google's motto, "index the world's information" ? You can forget it now, Google is just censoring or deferencing, both equivalent to deleting, content it indexes based on undisclosed rules. In fact, you can see quite clearly that someone owns Google. I am sure that will come as a surprise when so many (un)informed journalists out there tell you that Google owns you. Someone informs Google, and Google isn't transparent about it. More accurately, Google says so but you've got to read between the lines. Take a look at their latest announcement regarding the censoring and deferencing of so-called questionable Youtube videos : extrait : "Title : Continuing our work to improve recommendations
(...) We’ll begin reducing recommendations of borderline content and content that could misinform users in harmful ways—such as videos promoting a phony miracle cure for a serious illness, claiming the earth is flat, or making blatantly false claims about historic events like 9/11. (...) We think this change strikes a balance between maintaining a platform for free speech and living up to our responsibility to users. (...) This change relies on a combination of machine learning and real people. We work with human evaluators and experts from all over the United States
" So, in a nutshell, responsability implies censoring and dereferencing content produced by others, content that is not illegal at all, and this is controlled by human evaluators. Oh and by the way, those people are from the United states only, just to be sure this makes sense... If Google were transparent, as they claim they are, all censored and deferenced videos would 1) get listed on a page where everyone can see them listed with details to know why they were flagged 2) who flagged them and in particular who is the person behind the censorship and deferencing. Of course Google will never do transparency on the subject. Why is because it is obvious everyone with a functioning brain would immediately understand who owns Google. And there would be a blood bath right after that. Only respectable way out of this : a Googler stockpiles this list and makes it available publicly aftger a year or two, openly so that researchers can extract active censors, on what political/religious grounds properly owned content is censored and deferenced. In other words, why freedom of expression is so blatantly violated by a (possibly) small group of people with enormous power (none of these are Googlers by the way). |  |  | Posted on 29-January-2019 22:27 | Category: anti-Google | comment[0] | trackback[0] Build 4.5.0.50 of xlsgen adds support for calculating table formulas, that is, formula expressions including one or more table structured references, such as :
- Table1[Sales] // Sales column - Table1[[Sales]:[Income]] // Column range : Sales, ..., Income - Table1[[#Headers];[Sales]] // Header rows from the Sales column
Table formulas can appear anywhere : in cells, in objects (conditional formattings, ...), in defined names, ...
|  |  | Posted on 29-January-2019 21:25 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.49 of xlsgen takes into account the "hide zero cells" option which is supposed to show empty cells every time a cell stores a 0, entered as a zero or the result of a function. This impacts print, preview and PDF output.
|  |  | Posted on 29-January-2019 21:22 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.48 of xlsgen adds calculation support for Excel 365 functions related to the recently announced (by Microsoft) dynamic array functions, namely : - =RANDARRAY([rows],[columns]) : returns an array of random numbers between 0 and 1.
- =SEQUENCE(rows,[columns],[start],[step]) : generates a list of sequential numbers in an array, such as 1, 2, 3, 4.
- =FILTER(array,include,[if_empty]) : filters a range of data based on criteria you define.
- =UNIQUE(array,[by_col],[occurs_once]) : returns a list of unique values in a list or range.
- =SORT(array,[sort_index],[sort_order],[by_col]) : sorts the contents of a range or array.
- =SORTBY(array, by_array1, [sort_order1], [[by_array2], [sort_order2]],…) : sorts the contents of a range or array based on the values in a corresponding range or array.
- =SINGLE(value) : returns a single value using logic known as implicit intersection.
This build follows build 4.5.0.44 in which read and write support for those functions was added. |  |  | Posted on 29-January-2019 21:19 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Ventes privées : je le soupçonnais, c'est factuel désormais. Se méfier du concept de ventes privées, qui veut vous faire croire à un accès privilégié. Voici ce que dit la DGCCRF de cet accès privilégié : extrait : "Il est reproché à l’entreprise d’avoir cherché à donner à ses clients l’illusion de faire une bonne affaire en mettant en place différentes stratégies frauduleuses visant à construire un 'prix de référence' fictif. En l’occurrence, des 'prix de référence' qui ne correspondaient dans les faits à aucune réalité économique étaient utilisés pour afficher des taux de promotion particulièrement attractifs" C'est facile d'afficher des soldes à 40% et plus, lorsque le prix d'origine est fabriqué. Méfiance, les autres sites de e-commerce, l'étau se resserre... |  |  | Posted on 10-January-2019 20:39 | Category: France | comment[0] | trackback[0] Build 4.5.0.47 of xlsgen fixes a design problem in the calculation engine, namely the recursive calls to function calculations by reverse finding formula dependencies, reverse calculating them and putting them in the cache in order to avoid any additional recursion.
|  |  | Posted on 08-January-2019 08:03 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.46 of xlsgen fixes a problem related to parsing minuses and substracts with extended functions.
|  |  | Posted on 21-December-2018 22:54 | Category: xlsgen, Excel generator | comment[0] | trackback[0] If Windows 10 is more secure, as Microsoft and their chills out there are hammering it, then why is Windows 10 part of the list of Windows versions that needs to be patched every month to address new vulnerabilities ?
Is it me, or Windows 10 just look more like Windows XP every day, or perhaps even Windows 95.
That must be strange for anyone who regards Windows over the years as a sign of progress on fronts that address actual user problems, one problem being security.
Windows is almost 40 years ago and yet Microsoft patches it massively every month. Not just that, Microsoft even ships patches in between. Wow, just wow !
|  |  | Posted on 21-December-2018 08:57 | Category: anti-Microsoft | comment[0] | trackback[0] When you thought Microsoft could not get any stupider, here is what they are announcing (emphasis mine) : extrait : "Windows Sandbox: an isolated, temporary, desktop environment where you can run untrusted software without the fear of lasting impact to your PC. Any software installed in Windows Sandbox stays only in the sandbox and cannot affect your host. Once Windows Sandbox is closed, all the software with all its files and state are permanently deleted." The sandbox is completely inoperent actually. Even Notepad stores a bunch of settings (in the registry). With the sandbox, notepad will start in next session as if it was running for the first time. Ever wondered how an application works ? Application certainly need to store a lot of settings : settings, license file, work files... By preventing to do the very thing that an application must do, this is the perfect recipe for allowing nothing but the stupidest apps out there to run perfectly, and every time. Indeed! |  |  | Posted on 19-December-2018 22:54 | Category: anti-Microsoft | comment[0] | trackback[0] Build 4.5.0.45 of xlsgen adds read, write and calculation support for spill ranges. Spill range example (notice =SUM(A2#) in the formula bar)Spill range is a special cell range where the beginning of the range is specified, but not the end. Spill range have been announced on September 2018 by Microsoft and they will be avalaible in the course of 2019 in Office 365. It's important to realize that this feature is not going to be made available in any regular Excel version included Excel 2019 (released on September 2018). xlsgen provides read, write and calculation support for spill ranges, so as long as your scenario does not imply opening the resulting Excel file in a version of Excel that does not support them, which is many of them, xlsgen can get the scenario up and running, regardless of your Excel version (in fact xlsgen does not expect any Excel version installed on the computer where xlsgen runs). Spill range is of interest whenever the cell area being referenced changes over time. Indeed, every time a new row is added, or removed, a fix cell area would break the integrity of calculations, whereas a dynamic cell area would include both new rows and removed rows. This is exactly what spill range is. The notation is subtle. An anchor sign is added to a cell reference. This anchor sign means the bottom of the range isn't specified by the user, which in turn means it's up to xlsgen to calculate it based on what's in that range, that is whether that's raw data or an existing array formula, i.e. a formula that spans across multiple rows. In the screen shot above, it's very easy to understand the result of suming the spill range A2#, as in =SUM(A2#). It's the equivalent of =SUM(A2:A11). |  |  | Posted on 09-December-2018 12:09 | Category: xlsgen, Excel generator | comment[0] | trackback[0] As everyone can verify, Office 2019 is just a snapshot of Office 365. Office 365 is a moving target, it gets updated all the time. Office 2019 is just a snapshot that was taken this summer, officially shipped on September 24.
You would expect the system requirements for installing Office 2019 to be equivalent to those of Office 365, given that those are basically more or less the same exact binaries with same dependencies.
And yet, here are the system requirements for Office 365 wrt the operating system :
Windows 10, Windows 8.1, Windows 7 Service Pack 1, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2
And here are the system requirements for Office 2019 :
Windows 10, Windows Server 2019
So a slight discrepancy between the two. How come you can't install Office 2019 unless you are running Windows 10 but you can install Office 365 with just Windows 7 ?
The answer is plain obvious. Total shameless Microsoft. Microsoft ships Office 2019 because they have to, otherwise corporations out there would sue them for forcing the purchase of software subscriptions, because that's the commercial reason for Office 365, there is no technical reason for Office 365 to exist at all otherwise. But Microsoft makes sure you will never want to purchase Office 2019. So that's just lipstick on a pig. This corporation cannot be trusted. Move on guys!
|  |  | Posted on 06-December-2018 15:08 | Category: anti-Microsoft | comment[0] | trackback[0] Build 4.5.0.44 of xlsgen adds read and write support for Excel 365 functions related to the recently announced (by Microsoft) dynamic array functions, namely : - =RANDARRAY([rows],[columns]) : returns an array of random numbers between 0 and 1.
- =SEQUENCE(rows,[columns],[start],[step]) : generates a list of sequential numbers in an array, such as 1, 2, 3, 4.
- =FILTER(array,include,[if_empty]) : filters a range of data based on criteria you define.
- =UNIQUE(array,[by_col],[occurs_once]) : returns a list of unique values in a list or range.
- =SORT(array,[sort_index],[sort_order],[by_col]) : sorts the contents of a range or array.
- =SORTBY(array, by_array1, [sort_order1], [[by_array2], [sort_order2]],…) : sorts the contents of a range or array based on the values in a corresponding range or array.
- =SINGLE(value) : returns a single value using logic known as implicit intersection.
|  |  | Posted on 05-December-2018 23:43 | Category: xlsgen, Excel generator | comment[0] | trackback[0] <-- previous page
|
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)
|