jarir-ahmed/excel-sql-converter
Composer 安装命令:
composer require jarir-ahmed/excel-sql-converter
包简介
Bidirectional converter between CSV/XLSX and SQL. Import spreadsheets into SQL INSERT statements or directly into MySQL, and export SQL query results to CSV/XLSX files.
README 文档
README
Bidirectional converter between CSV/XLSX and SQL — import spreadsheets into SQL INSERT statements (or directly into MySQL), and export SQL query results to CSV/XLSX files.
composer require jarir-ahmed/excel-sql-converter
Quick Start
Import: CSV/XLSX → SQL
use JarirAhmed\ExcelSqlConverter\ImportManager; $import = new ImportManager(); // Generate SQL INSERT statements $sql = $import->csvToSql('customers.csv', 'customers'); echo $sql; // With XLSX $sql = $import->xlsxToSql('orders.xlsx', 'orders'); echo $sql; // Auto-detect by file extension $sql = $import->fileToSql('data.csv', 'my_table'); $sql = $import->fileToSql('data.xlsx', 'my_table');
Import: Direct DB insert via PDO
$pdo = new PDO('mysql:host=127.0.0.1;port=3306;dbname=test-excel;charset=utf8mb4', 'root', 'your_secure_password'); $import = new ImportManager(); // When PDO is passed, rows are inserted directly (returns '') $import->csvToSql('data.csv', 'users', ['pdo' => $pdo]); // To get the SQL *and* execute, use skipExecute: $sql = $import->csvToSql('data.csv', 'users', [ 'pdo' => $pdo, 'skipExecute' => true, ]); // Now $sql has the statements, and you can review/execute manually
Export: SQL → CSV/XLSX
use JarirAhmed\ExcelSqlConverter\ExportManager; $pdo = new PDO('mysql:host=127.0.0.1;port=3306;dbname=test-excel;charset=utf8mb4', 'root', 'your_secure_password'); $export = new ExportManager(); // SQL query → CSV $export->sqlToCsv('SELECT * FROM users', $pdo, 'users_export.csv'); // SQL query → styled XLSX $export->sqlToXlsx('SELECT * FROM orders', $pdo, 'orders_export.xlsx');
Export: Raw array → CSV/XLSX
$export = new ExportManager(); $data = [ ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'], ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'], ]; $export->dataToCsv($data, 'export.csv'); $export->dataToXlsx($data, 'export.xlsx');
ImportManager Options
| Option | Type | Default | Description |
|---|---|---|---|
pdo |
PDO|null |
null |
PDO connection for direct DB insert |
skipExecute |
bool |
false |
Return SQL string even when PDO is set |
batchSize |
int |
50 |
Rows per INSERT block |
hasHeader |
bool |
true |
First row is column names |
columns |
string[] |
[] |
Force custom column names (ignores header) |
delimiter |
string |
, |
CSV delimiter (csvToSql only) |
enclosure |
string |
" |
CSV enclosure (csvToSql only) |
ignore |
bool |
false |
Use INSERT IGNORE instead of INSERT |
emptyAsNull |
bool |
true |
Empty cells become NULL instead of '' |
preview |
int |
0 |
Only process first N rows (0 = all) |
onDuplicateKey |
string |
null |
SQL fragment for ON DUPLICATE KEY UPDATE |
sheetName |
string |
first sheet | Worksheet name (xlsxToSql only) |
formatDates |
bool |
true |
Convert Excel date serials to YYYY-MM-DD (xlsxToSql only) |
ExportManager Options
CSV options (sqlToCsv / dataToCsv)
| Option | Type | Default | Description |
|---|---|---|---|
delimiter |
string |
, |
CSV column delimiter |
enclosure |
string |
" |
CSV enclosure character |
includeHeaders |
bool |
true |
Write column headers as first row |
utf8Bom |
bool |
false |
Prepend UTF-8 BOM (Excel-friendly) |
headers |
string[] |
[] |
Custom headers (dataToCsv only) |
XLSX options (sqlToXlsx / dataToXlsx)
| Option | Type | Default | Description |
|---|---|---|---|
sheetName |
string |
Data |
Worksheet tab name (max 31 chars) |
creator |
string |
ExcelSqlConverter |
Document author |
styled |
bool |
true |
Apply blue header row styling |
headers |
string[] |
[] |
Custom headers (dataToXlsx only) |
Local Testing
# Install dependencies composer install # Run tests composer test
Test database (for manual verification):
| Host | Database | User | Password | Port |
|---|---|---|---|---|
localhost |
test-excel |
root |
your_secure_password |
3306 |
CREATE DATABASE IF NOT EXISTS `test-excel` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
License
MIT
jarir-ahmed-csv-xlsx-sql
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-09