alexskrypnyk / csvtable
PHP类,用于将CSV文件作为表格处理,并将其导出为Markdown格式。
0.3.0
2024-01-16 12:00 UTC
Requires
- php: >=8.1
Requires (Dev)
- drupal/coder: ^8.3
- phpmd/phpmd: ^2.15
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.1
- rector/rector: ^0.19.0
README
CsvTable
PHP类,用于将CSV文件作为表格处理,并将其导出为Markdown格式。
功能
- 单文件类,用于操作CSV表格。
- CSV和文本表格渲染器。
- 能够提供自定义渲染器。
安装
composer require alexskrypnyk/csvtable
使用
给定一个包含以下内容的CSV文件
col11,col12,col13
col21,col22,col23
col31,col32,col33
从字符串
$csv = file_get_contents($csv_file); // Render using the default renderer. print (new CsvTable($csv))->render();
默认情况下将产生相同的CSV内容
col11,col12,col13
col21,col22,col23
col31,col32,col33
从文件
print (CsvTable::fromFile($file))->render();
默认情况下将产生相同的CSV内容
col11,col12,col13
col21,col22,col23
col31,col32,col33
使用CsvTable::renderTextTable()
渲染器
print (CsvTable::fromFile($file))->render([CsvTable::class, 'renderTextTable']);
将产生表格内容
col11|col12|col13
-----------------
col21|col22|col23
col31|col32|col33
使用带有禁用标题的CsvTable::renderTextTable()
渲染器
print (CsvTable::fromFile($file))->noHeader()->render([CsvTable::class, 'renderTextTable']);
将产生表格内容
col11|col12|col13
col21|col22|col23
col31|col32|col33
从类中自定义渲染器
print (CsvTable::fromFile($file))->render(Markdown::class);
将产生Markdown内容
| col11 | col12 | col13 | |-------|-------|-------| | col21 | col22 | col23 | | col31 | col32 | col33 |
作为回调的自定义渲染器
print (CsvTable::fromFile($file))->render(function ($header, $rows, $options) { if (count($header) > 0) { $header = implode('|', $header); $header = $header . "\n" . str_repeat('-', strlen($header)) . "\n"; } else { $header = ''; } return $header . implode("\n", array_map(function ($row) { return implode('|', $row); }, $rows)); });
将产生CSV内容
col11|col12|col13
-----------------
col21|col22|col23
col31|col32|col33
维护
composer install
composer lint
composer test
使用https://getscaffold.dev/项目模板创建的仓库