Please contact us if you need help with transforming the data
Currently, we are testing the Advanced ETL Processor tool and evaluating how we can use it best for our specific cases. Recently we have come across a problem:Sometimes it is necessary to fill columns in excel, only if a certain value, for example, the order number is given in the destination file.In this very example, which you can see in the attachments, I would like to have AETLP check, if the order number in the destination file meets an order number in the source file.And if so, I would like to have AETLP to fill the empty gaps, in this case, name and description for example, but only if they're empty.
Original forum post
The simplest way to transform the data is to use the Lookup transformation function.
To view the example follow the steps below
Note: That reader and writer point to the same file
In this tutorial, you will learn how to use Advanced ETL Processor Pro workflow designer to create a simple data transformation package. The package will take the data from an Excel file, validates the data, and then inserts the data into a MySQL fact table. In the following lessons, the package will be expanded to demonstrate connections, package configurations, logging and error flow.
This tutorial is intended for users familiar with fundamental database operations, but who have limited exposure to the new features available in Advanced ETL Processor.
All our ETL tools have no limitations, which means you can load your data today and solve all the data quality problems right now.
Our WIKI has more detailed information if you are stuck post your question on our support forum and we will do our best to assist you
A new version of Advanced ETL Processor is out with a much more anticipated new feature: the ability to work with multiple excel sheets within a single transformation. This was not possible before. the only way was is to create a separate transformation for every single sheet and execute them sequentially.
All you need to do is point writers to the same file. In the example below, "Writer C1" adds data to the C1 excel sheet and "Writer C2" adds data to the C2 excel sheet. This not only makes the life of our ETL software users easier but also improves performance.
Another useful feature is "Cache values" option of "Get Excel Cell Value Dynamic" transformation function. This increase performance multiple times.
Other changes are:
We would like to thank Vattikonda from https://www.cepres.com/ for providing us with useful feedback
In a lot of organizations, Excel Spreadsheets are everywhere and Excel is everything. It is extremely important for modern ETL tool to work with Excel correctly.
Of all Microsoft Office applications, Excel is one of the most important ones for all kinds of businesses. This is because it provides an enormous capacity to perform everything from simple day-to-day operations to complex statistical analysis. It comes packed with lots of valuable formulas, charts and other tools that simplify the process of recording, analyzing and performing calculations of data. This is the reason why it is used daily in millions of workplaces all over the world. Almost everyone who deals with data has used the Excel interface at some point.
We worked with a lot of finance and accounting companies and the first question they always ask was: How do we export the data to Excel?
To harness the full power of Excel, you need to have an ETL tool that is capable of handling input from Excel files. Owing to the many ways you can use Excel to achieve your desired results, you need an ETL tool that is flexible enough to understand the different ways data can be processed. This is where our Advanced ETL Processor really shines. It is able to work with Excel as a data source and take inputs from Excel files depending on your specific preferences. Here are some of the things you can do with this ETL tool:
This ETL software is built by people experienced in managing data warehouses hence you can be sure that it comes packed with features that you will actually use in your day-to-day operations. Whatever you need to get data from Excel files, you will find it in our Advanced ETL Processor.
In addition to allowing you to get data from Excel, our Advanced ETL Processor enables you to export data to Excel files. Once again, this tool is designed to give you full functionality when exporting data to Excel. Whether you are looking to create a new Excel file for your data or you want to add the data to an existing file, the Advanced ETL Processor is all you need. Here are some of the things you can do with it when using Excel as a data target:
In addition to the above data operations, you can also perform a number of workflow operations on Excel sheets. Here are some of the processes that you can perform:
Whatever data operations you want to do on Excel files, our Advanced ETL Processor will help you do it easily and effortlessly. Click the button above to download it for free and try out some of its amazing features. The Advanced ETL Processor is the ultimate ETL tool when it comes to working with Excel files.
Advanced ETL Processor has more than 500 transformation and validation functions. if something is missing we will add for you. Data can be sorted grouped and filtered, the possibilities are limitless.
Advanced ETL Processor offers various automation actions such as file operations, email processing, FTP operations, compression and even encryption.
Transforming Excel data can be a complex task this article describes how the Advanced ETL Processor works with Excel data.
Data can be extracted from the entire Sheet or just from the data range.Advanced ETL Processor assumes that "Sheet name" and "Range name" a delimited by a dot.
Users can still call Sheets as a "Great.Victory"
The logic as follows:
Advanced ETL Processor will check if Great.Victory sheet exits then it will read itIf it does not exist it will check if the Great sheet exitsIf it does exists it will check if Victory range exists if it does It will read data from just Victory rangeIf it does not it will read the data from Sheet "Great"
Please make sure that the range names are not duplicated within the file
Advanced ETL Processor gives the user various options to generate Excel files.
Quite often it is necessary to get the content of an Excel cell and load it into the database. For example, when processing invoices it would be necessary to load an invoice date.
In the latest version of Advanced ETL Processor,we have introduced "Get Excel Cell Value" transformation function
There is also the dynamic version of this function:
Note: One of the benefits of using Date Format function that it supports multiple input formats
Advanced ETL Processor has a robust data transformation process built in.
The types and nature of the transformations taking place can be tweaked and configured by the user. A full range of data transformation functions is included. Transformations can be performed on the basis of data type, lookups and regular expressions, which can be individually changed according to the requirements.
Common problem:trying to load the data from an Excel file half of the data is coming as nulls, or columns with more than 255 characters are truncated
As partially explained here
Initializing the Microsoft Excel driver
ODBC/MS Jet scans first TypeGuessRowsto determine field type
In your eight (8) scanned rows, if the column contains five (5) numeric values and three (3) text values, the provider returns five (5) numbers and three (3) null values.In your eight (8) scanned rows, if the column contains three (3) numeric values and five (5) text values, the provider returns three (3) null values and five (5) text values.In your eight (8) scanned rows, if the column contains four (4) numeric values and four (4) text values, the provider returns four (4) numbers and four (4) null values.In your eight (8) scanned rows all of them less than 255 characters the provider will truncate all data to 255 characters In your eight (8) scanned rows, if the column contains five (5) values with more length than 255 the provider will return more than 255 characters
Setting IMEX=1 tells the driver to use the Import mode. In this state, the registry setting ImportMixedTypes=Text will be noticed. This forces mixed data to be converted to text. For this to work reliably, you may also have to modify the registry setting, TypeGuessRows=8. The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype. If this eight-row sampling is all numeric, then setting IMEX=1 will not convert the default datatype to Text; it will remain numeric.
Nobody wants to load half of the data, everybody wants to load data as it is
Advanced ETL Processor Reader Object is capable of extracting data from MS Excel files and MS Acess databases.
I've been looking at your Advanced ETL Processor for taking data from Excel sheets into a MySQL database. We receive regular Excel sheets from about 20-25 suppliers quoting rates for services; each supplier has a different format (although some commonalities between them).
It is very interesting what you are trying to achieve and we would be happy to assist you in difficult cases. If some functionality is missing we will add it for you.
Based on customer feedbackin the latest version we have added a new package object ExcelOperation Action
It allows to:
There are several ways to connect Excel Files and run SQL against it:
Both Advanced ETL Processor and Visual Import ETL can use ODBC to connect to Excel
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
"HDR=Yes;" indicates that the first row contains column names, not data. "HDR=No;" it does not
A very useful feature for the Excel file below when you want to retrieve the Invoice Number:
SQL syntax for ODBC and Ole DB is slightly different
SELECT * FROM [Sheet1$]
SELECT * FROM MyRange
To specify an unnamed range of cells as your record source, append standard Excel row/column notation to the end of the sheet name in the square brackets. For example:
SELECT * FROM [Sheet1$A1:B10]
ADO/ODBC must determine the data type for each column in your Excel worksheet or range (This is not affected by Excel cell formatting settings.) This is done by scanning number of rows defined by the registry setting TypeGuessRows (default value is 8). Quite often there are numeric values mixed with text values in the same column, For example, sorted financial coding structures often have numbers at the beginning of the list 001-999 than text AAA-XXXBoth the Jet and the ODBC Provider return the data of the majority type but return NULL (empty) values for the minority data type. If the two types are equally mixed in the column, the provider chooses numeric over text.Plus when first rows are less than 255 characters long it will truncate all data to 255 characters even if cell values below are longerOne of the ways of avoiding this problem is using Import Mode (IMEX=1). This forces mixed data to be converted to text. However, it only works when the first TypeGuessRows Rows have mixed values.If all values are numeric than setting IMEX=1 will not convert the default datatype to Text, it will remain numeric. The best combination to avoid problems is TypeGuessRows=0 + IMEX=1.Setting TypeGuessRows=0 forces driver to read all data to determine field type.Unfortunately, our own experience shows that quite often it does not work.And when it does work it slows everything downSo the only solution is not to use mixed values and be prepared for the data being truncated to 255 characters
As you can see there is plenty of room for improvement for Microsoft. The first version of Microsoft Office was released very long time ago and it is still not possible to read excel file correctly. Why do not they just add another setting to ODBC driver EverhingIsText=1? This so simple and will solve all the problems.
All our products work correctly with Excel because we do not use OleDb or ODBC
The new version of Advanced ETL Processor is available for download
This version addresses well-known problems related to working with Excel files
The sad story is: what ever you use: Excel ODBC, MS Jet, Ole DB, .NET sooner or later you will hit the brick wall.You can not load the data correctly without modifying excel file. We receive thousands of excel files every day. I mean do you seriously expect us to modify them manually every day? What kind of automation is that? We tried DTS it did not work tried SSIS it did work either, so we wrote vb macros to extract the data. We do not do it any more since we have discovered Advanced ETL processor It saved us thousands of hours.John Spoon.
Also Data grids modifications:
We have the following situation:
Imagine that you are working for a large financial organization and would like to load the year-end balances into the SQL Server database. The excel file looks like this.
So we create a simple SSIS package using Excel connector and Ole DB destination, before loading the data we hit the preview button.
For some reason last 3 lines have null values, This is because our connection string has not got IMEX=1
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\DEMO\Excel\mixed_data_types.xls;Extended Properties="EXCEL 8.0;HDR=YES";
This can be easily corrected by adding IMEX=1
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\DEMO\Excel\mixed_data_types.xls;Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1";
In this example, we are using Microsoft Access Engine 2016, the same applies to the older versions
That looks much better so we load the data. Later the same day, the finance manager says that the balance is wrong so you look at the data and there are some null values again.
This article provides examples of complex and simple data. We recommend using Advanced ETL Processor for working with complex data structures and Visual Importer ETL with simple; If in doubt please contact us and we will help you to choose.
Data has a stable structure and there is only one value in the cell. Most database tables and delimited files can be considered simple data. except when a single field has multiple values or holds XML data.
XML tags are in the same order, the number of tags is always the same and there are no attributes, This XML does not require any additional transformation and can be easily loaded into the database.
The structure is not stable, the number of tags is different for a different customer record, plus it uses attributes. This XML may need some additional transformations.
Data is split into different rows, some empty rows should be ignored, some data must be taken from the header
Data can be easily extracted or generated using Advanced ETL Processor
Copyright © 2022 ETL-tools.com. All Rights Reserved.