VBA CSV interface is the most complete, and open source, CSV/TSV VBA parser library nowadays. The library is RFC-4180 compliant and enables users to manipulate CSV content at the highest speed. All the modules were developed to accomplish the data exchange task with the greatest performance and to grant an easy use.
- Fast. Writes and reads files at the highest speed.
- Memory-friendly. CSV/TSV files are processed using a custom stream technique, only 0.5MB are in memory at a time.
- Easy to use. A few lines of code can do the work!
- Highly Configurable. User can configure the parser to work with a wide range of CSV files.
- CSV data subsetting. Split CSV data into a set of files with related data.
- Like SQL queries on CSV files. Add your own logic to mimic SQL queries and filter data by criteria (=, <>, >=, <=, AND, OR).
- Automatic delimiter guesser. Don't worry if you forgot the file configuration!
- Flexible. Import only certain range of records from the given file, import fields (columns) by indexes or names, read records in sequential mode.
- Dynamic Typing support. Turn CSV data field to a desired VBA data type.
- Data sorting. Sort CSV imported data using the hyper-fast(100k records per second) Yaroslavskiy Dual-Pivot Quicksort like Java.
- Microsoft Access compatible. The library has a version for those who feel in comfort working through DAO databases, download from here.
- RFC-4180 specs compliant.
If you don't know how to get started with VBA-CSV Interface class, visit the documentation repo.
In order to contribute within this project, please see the guidance for contributing.
The benchmark results for VBA-CSV Interface are available at this site.
The library depends on the ECPTextStream class in order to work with text files. In the same way, the class uses two external class modules: one for configuration sharing and the other for data storage. All dependencies are written in pure VBA.
Visit this site in order to known around CSV file size considerations.
Copyright (C) 2021 W. García.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.html.