Class | Description |
---|---|
CsvConnection |
Represents a connection to CSV file.
|
CsvConnectionParameters |
Connection parameters for CSV driver
|
CsvQuery |
Query for CSV file.
|
Driver |
Scriptella driver for CSV files.
|
Exception | Description |
---|---|
CsvProviderException |
Thrown to indicate a problem with CSV file processing.
|
Note: The driver doesn't use SQL syntax
Driver class: | scriptella.driver.csv.Driver |
URL: | CSV file URL. URIs are resolved relative to a script file directory.
If url has no value the output is read from/printed to the console (System.out). |
Runtime dependencies: | None |
Name | Description | Required |
---|---|---|
encoding | Specifies charset encoding of CSV files. | No, the system default encoding is used. |
separator | The delimiter to use for separating entries when reading from or writing to files. | No, the default value is , . |
quote | The character to use for quoted elements when reading from or writing to files. Use empty string to suppress quoting. | No, the default value is " . |
headers | Value of true means the first line contains headers.
Only valid for <query> elements. |
No, the default value is true (first line contains column names). |
eol | End-Of-Line suffix. Only valid for <script> elements. |
No, the default value is \n . |
trim | Value of true specifies that the leading and trailing
whitespaces in CSV fields should be omitted.
| No, the default value is true . |
skip_lines | The number of lines to skip before start reading. Please note that if headers=true ,
the actual number of skipped lines is skipped_lines+1
| No, the default value is 0 (no lines are skipped). |
null_string | Specifies string token to represent Java null literal.
When querying a CSV file, cells with content equal to null_string are parsed to Java nulls. Specify an empty string ( |
No, by default strings are preserved, i.e. empty strings are not converted to nulls and null variables references are not expanded in the output, i.e. ${nullvalue}. |
,food
,^Beverages$
This query selects rows where the second column equals "Beverages" or
contains "food" substring.
The columns of the matched row can be referenced by name in nested queries/scripts. It is also possible to reference columns by an index, i.e. $1, $2, ...
<script>
id,priority,summary,status
1,Critical,NullPointerException in Main class,Open
</script>
This script writes 2 lines to the output file.
IMPORTANT:
Always use commas as a column separator inside both <script> and <query> elements no
matter what separator
is used in files being parsed or produced.
This decision allows switching between different formats like tab or semicolumn while keeping
scripts and queries unchanged.
NOTE:
By default NULL variables and expressions are preserved, usenull_string
connection property to specify
a string token for nulls.
For example setting null_string to empty string in the connection properties section will enable parsing
empty strings as nulls:
<connection driver="csv" url="report.csv">
null_string=
</connection>
Scriptella properties substitution engine cannot distinguish null value from an unused variable or some unintended usage of
$var syntax,
therefore such blocks are preserved by default until user explicitly specify the value of null_string.
<connection id="in" driver="csv" url="data.csv">
</connection>
<connection id="out" driver="csv" url="report.csv">
#Use empty quote to turn off quoting
quote=
separator=;
</connection>
<script connection-id="out">
ID,Priority,Summary,Status
</script>
<query connection-id="in">
<!--Empty query means select all-->
<script connection-id="out">
$rownum,$priority,$summary,$status
</script>
</query>
Copies rows from data.csv file to report.csv, additionally the ID column is added.
The result file will be semicolon separated.
Copyright © Copyright 2006-2019 The Scriptella Project Team.