alexskrypnyk/csvtable

PHP类,用于将CSV文件作为表格处理,并将其导出为Markdown格式。

0.3.0 2024-01-16 12:00 UTC

This package is auto-updated.

Last update: 2024-09-04 08:55:16 UTC


README

Yourproject logo

CsvTable

GitHub Issues GitHub Pull Requests Test codecov GitHub release (latest by date) LICENSE Renovate

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/项目模板创建的仓库