DbUnitのExportタスク

で,format="excel"が指定できないのが不便だったので,ちっと弄ってみた.
あと,Excelの日本語対応も(これはdotさんがpatch送付済みか)

 diff -uNr java.old/org/dbunit/ant/Export.java java/org/dbunit/ant/Export.java
 --- java.old/org/dbunit/ant/Export.java	Fri Jan 23 01:05:38 2004
 +++ java/org/dbunit/ant/Export.java	Mon Apr 26 17:44:59 2004
 @@ -25,6 +25,7 @@
  import org.dbunit.database.IDatabaseConnection;
  import org.dbunit.database.QueryDataSet;
  import org.dbunit.dataset.IDataSet;
 +import org.dbunit.dataset.excel.XlsDataSet;
  import org.dbunit.dataset.xml.FlatDtdDataSet;
  import org.dbunit.dataset.xml.FlatXmlDataSet;
  import org.dbunit.dataset.xml.XmlDataSet;
 @@ -55,6 +56,7 @@
      private static final String FORMAT_FLAT = "flat";
      private static final String FORMAT_XML = "xml";
      private static final String FORMAT_DTD = "dtd";
 +    private static final String FORMAT_EXCEL = "excel";
 
      private File _dest;
      private String _format = FORMAT_FLAT;
 @@ -93,7 +95,8 @@
      {
          if (format.equalsIgnoreCase(FORMAT_FLAT)
                  || format.equalsIgnoreCase(FORMAT_XML)
 -                || format.equalsIgnoreCase(FORMAT_DTD))
 +                || format.equalsIgnoreCase(FORMAT_DTD)
 +                || format.equalsIgnoreCase(FORMAT_EXCEL))
          {
              _format = format;
          }
 @@ -165,6 +168,10 @@
                  else if (_format.equalsIgnoreCase(FORMAT_DTD))
                  {
                      FlatDtdDataSet.write(dataset, out);
 +                }
 +                else if (_format.equalsIgnoreCase(FORMAT_EXCEL))
 +                {
 +                    XlsDataSet.write(dataset, out);
                  }
              }
              finally
 diff -uNr java.old/org/dbunit/dataset/excel/XlsDataSet.java java/org/dbunit/dataset/excel/XlsDataSet.java
 --- java.old/org/dbunit/dataset/excel/XlsDataSet.java	Fri Jan 23 01:05:38 2004
 +++ java/org/dbunit/dataset/excel/XlsDataSet.java	Mon Apr 19 15:51:09 2004
 @@ -100,6 +100,7 @@
              {
                  Column column = columns[j];
                  HSSFCell cell = headerRow.createCell((short)j);
 +                cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                  cell.setCellValue(column.getColumnName());
              }
  
 @@ -114,6 +115,7 @@
                      if (value != null)
                      {
                          HSSFCell cell = row.createCell((short)k);
 +                        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                          cell.setCellValue(DataType.asString(value));
                      }
                  }

これで一応動いているが,ホントにいいのかは知らない.