The CSV Pivot Table & Data Analysis System is an analytical data processing web application built with Java. Featuring an in-memory multi-dimensional aggregation engine (PivotEngine), the platform allows users to upload CSV files, dynamically configure pivot dimensions (SUM, COUNT, AVG, MIN, MAX), and export publication-ready Microsoft Excel (.xlsx) workbooks.
- ⚡ Dynamic In-Memory Pivot Engine: Compute multi-dimensional aggregations (
SUM,COUNT,AVG,MIN,MAX) across arbitrary CSV fields (PivotEngine.java). - 📁 Streamed CSV Ingestion: High-efficiency CSV parsing with automatic data type detection (
CsvParserService.java). - 📊 Excel Workbook Generator: Stream pivot results directly into styled
.xlsxworkbooks (XlsxGenerator.java). - ⚙️ Custom Pivot Configuration: Save, retrieve, and update custom pivot analytical settings (
PivotConfigDao.java). - 🖥️ Interactive Analytics Dashboard: Intuitive web UI for selecting row dimensions, column dimensions, value aggregations, and visual filters.
flowchart LR
A[Upload CSV File] --> B[CsvParserService]
B --> C[DatasetDao Storage]
C --> D[Pivot Engine]
E[User Selects Dimensions] --> D
D --> F[PivotResult JSON]
D --> G[XlsxGenerator Export]
F --> H[Interactive Table UI]
G --> I[Download XLSX File]
| Component | Role | Description |
|---|---|---|
PivotEngine.java |
Core Engine | In-memory multidimensional aggregation engine computing pivot matrixes. |
CsvParserService.java |
Parser | Reads stream data, identifies header fields, and determines column types. |
XlsxGenerator.java |
Exporter | Converts PivotResult structures into formatted Microsoft Excel files. |
UploadServlet.java |
Controller | Accepts multi-part CSV uploads and stores datasets. |
ReportServlet.java |
Controller | Computes pivot tables on-demand and returns tabular JSON output. |
SettingsServlet.java |
Controller | Saves user-specific pivot settings and aggregation configurations. |
csvpivot/
├── src/
│ └── main/
│ ├── java/
│ │ ├── apps/
│ │ │ └── csvpivot/
│ │ │ ├── servelets/ # Report, Upload & Settings Servlets
│ │ │ └── util/ # Pivot Engine, CSV Parser, Excel Generator
│ │ └── apps/
│ │ └── dbservice/ # Shared HikariCP Connection Pool
│ ├── resources/
│ │ └── db.properties # Database Properties
│ └── webapp/
│ └── apps/
│ └── csvpivot/ # Dashboard JSPs, Styles & Scripts
└── README.md
- Configure
db.propertieswith database parameters. - Deploy onto Apache Tomcat 9.0+.
- Open in browser:
http://localhost:8080/apps/apps/csvpivot/index.jsp
Distributed under the MIT License.