Skip to content

A small RFC-4180 compliant VBA library to manipulate CSV files at the highest speed.

License

Notifications You must be signed in to change notification settings

mehrlander/VBA-CSV-interface

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VBA-CSV interface

GitHub GitHub release (latest by date)

Introductory words

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.

Advantages

  • 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.

Getting started

If you don't know how to get started with VBA-CSV Interface class, visit the documentation repo.

Contributing

In order to contribute within this project, please see the guidance for contributing.

Benchmark

The benchmark results for VBA-CSV Interface are available at this site.

Dependencies

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.

Limitations

Visit this site in order to known around CSV file size considerations.

Licence

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.

About

A small RFC-4180 compliant VBA library to manipulate CSV files at the highest speed.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • VBA 100.0%