PHPackages                             iamapen/excel-friendly-data-set - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. iamapen/excel-friendly-data-set

Abandoned → [iamapen/commentable-data-set](/?search=iamapen%2Fcommentable-data-set)ArchivedLibrary[Testing &amp; Quality](/categories/testing)

iamapen/excel-friendly-data-set
===============================

Excel friendly CsvDataSet for DBUnit

1.1.3(6y ago)0511MITPHPPHP &gt;=5.3.3

Since Jan 17Pushed 6y ago1 watchersCompare

[ Source](https://github.com/iamapen/dbunit-ExcelFriendlyDataSet)[ Packagist](https://packagist.org/packages/iamapen/excel-friendly-data-set)[ Docs](https://github.com/iamapen/dbunit-ExcelFriendlyDataSet)[ RSS](/packages/iamapen-excel-friendly-data-set/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (11)Used By (0)

ExcelFriendlyDataSet
====================

[](#excelfriendlydataset)

phpunit3～4/dbunit 用の DataSet や Operation の詰め合わせ。

元々はExcelで扱いやすい UTF-16(LE+BOM) のCSVを phpunit/dbunit で使うための CsvDataSet がメインだったためこの名前になっているが、 今後はただの拡張の詰め合わせになる予定。

※phpunit5～7 へ対応したものは別プロジェクトになりました。
今後はこちら [iamapen/commentable-data-set](https://packagist.org/packages/iamapen/commentable-data-set)

Install
=======

[](#install)

composer.json

```
require-dev: {
  "iamapen/excel-friendly-data-set": ">=1.1.0"
}

```

Usage
=====

[](#usage)

DataSet
-------

[](#dataset)

### DataSet/CommentableDataSet

[](#datasetcommentabledataset)

CSVの左n列をコメント列扱いとして、無視する(取り込まない) 機能を持つ CsvDataSet。
テストデータに対してのコメント列として使える。

```
$ds = new Iamapen\ExcelFriendlyDataSet\Database\DataSet\CommentableCsvDataSet(",");
$ds->setIgnoreColumnCount(1);    // 1列目を無視
```

CSVの例

```
最初の列はコメント,id,user_name
男性ユーザ,1,taro soramame
女性女性ユーザ,2,arare norimaki
1ヶ月以上ログインしてないユーザ,3,akane kimidori
削除されるユーザ,4,gajira norimaki
```

### DataSet/ExcelCsvDataSet

[](#datasetexcelcsvdataset)

最初に作成した DataSet。
Excelで扱いやすい UTF-16-LE(+BOM) のCSVを UTF-8 に変換しながら取り込むもの。
現在は出番はないと思われる。

2007年作成当時は UTF-8 の CSVを満足に編集できるソフトが少ないという経緯で作られた。
しかし現在は LibreOffice-Calc 等のエディタでUTF8のCSVを容易に編集できるため、 わざわざExcel用に UTF-16 で保存しておくこともない。

以下、旧 README のまま。

Excelでは UTF-8 のcsvをまともに編集(とくに保存)ができないが、 UTF-16-LE(+BOM) にすれば「D&amp;Dで開く」「Ctrl+S」で保存など比較的自然に編集でき、 テストデータにUnicode文字も使える。

代わりにテストコード内で UTF-16 -&gt; UTF-8 変換が必要になるので、これを行う。

なおExcelからは"Unicode", sakuraエディタでは"Unicode", vimでは"utf16le", mbstringでは"UTF-16"で扱える。 新規CSV作成時はテキストエディタでUTF-16のファイルを作成してそれをExcelにD&amp;Dするのが楽そう。

xxTest.php

```
$ds = new Iamapen\ExcelFriendlyDataSet\Database\DataSet\ExcelCsvDataSet();
```

Operation
---------

[](#operation)

### Operation/MySqlBulkInsert

[](#operationmysqlbulkinsert)

`PHPUnit_Extensions_Database_Operation_Insert` のバルクインサート版。
MySQL専用。(一応SQLiteでも動く)

あまりに入力CSVが大きいと、`max_allowed_packet` の制限にかかる可能性がある。これは課題。

```
use Iamapen\ExcelFriendlyDataSet\Database\DataSet\CommentableCsvDataSet;
use Iamapen\ExcelFriendlyDataSet\Database\Operation\MySqlBulkInsert;

// DataSet
$ds = new CommentableCsvDataSet('PATH/TO/CSV');

// 実行
$operation = new MySqlBulkInsert();
$operation->execute($this->getConnection(), $ds);
```

注意点・課題
======

[](#注意点課題)

- DataSet/ExcelCsvDataSet は現代では使うべきでないと思う。
    UTF-8 で保存して、UTF-8 対応のエディタで編集するのがよい。例えば LibreOffice の Calc でできる。
    Excelでやろうというのは、まともなエディタが存在しなかった時代の古いアプローチ。
- Operation/MySqlBulkInsert は、あまりに入力CSVが大きいと `max_allowed_packet` の制限にかかる可能性がある。
- PHP-5.3 サポートのために PHPUnit の 3.x と 4.x をベースにしている。
    おそらく PHPUnit-5 系では動作しない。
- 正式なプロダクトでの運用実績がないため、品質は趣味レベル。

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~220 days

Recently: every ~243 days

Total

10

Last Release

2516d ago

Major Versions

0.0.x-dev → 1.0.12016-07-21

PHP version history (2 changes)0.0.1PHP &gt;=5.3.1

1.1.0PHP &gt;=5.3.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/ea7d284aa8645efaa9a36a8c8a4848f90c083363b7a2a1f35fa760a90a2f64b1?d=identicon)[iamapen](/maintainers/iamapen)

---

Top Contributors

[![iamapen](https://avatars.githubusercontent.com/u/415157?v=4)](https://github.com/iamapen "iamapen (12 commits)")

---

Tags

phpunitdbUnit

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/iamapen-excel-friendly-data-set/health.svg)

```
[![Health](https://phpackages.com/badges/iamapen-excel-friendly-data-set/health.svg)](https://phpackages.com/packages/iamapen-excel-friendly-data-set)
```

###  Alternatives

[phpunit/phpunit

The PHP Unit Testing framework.

20.0k910.7M134.1k](/packages/phpunit-phpunit)[brianium/paratest

Parallel testing for PHP

2.5k118.8M753](/packages/brianium-paratest)[johnkary/phpunit-speedtrap

Find and report on slow tests in your PHPUnit test suite

78137.2M121](/packages/johnkary-phpunit-speedtrap)[spatie/phpunit-snapshot-assertions

Snapshot testing with PHPUnit

69417.9M511](/packages/spatie-phpunit-snapshot-assertions)[dg/bypass-finals

Removes final keyword from source code on-the-fly and allows mocking of final methods and classes

56426.3M455](/packages/dg-bypass-finals)[phpspec/prophecy-phpunit

Integrating the Prophecy mocking library in PHPUnit test cases

19254.9M1.4k](/packages/phpspec-prophecy-phpunit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
