Não achei nada parecido, então fiz esse conversor simples de LDIF para CSV:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
public class LDIFConversor {
File lidfFile;
File csvFile;
public LDIFConversor(File ldifFile, File csvFile)
{
this.lidfFile = ldifFile;
this.csvFile = csvFile;
}
public void convert()
{
try
{
ArrayList<String> linesFromLDIF = this.getLines();
ArrayList<HashMap<String, String>> rows = new ArrayList<HashMap<String, String>>();
ArrayList<String> colsName = new ArrayList<String>();
HashMap<String, String> colsValue = null;
for (int i = 0; i < linesFromLDIF.size(); i++)
{
String line = linesFromLDIF.get(i);
if (line.contains(":"))
{
String[] lineParts = line.split(":");
if (lineParts[0].equals("dn"))
{
if (colsValue != null)
rows.add(colsValue);
colsValue = new HashMap<String, String>();
}
if (!colsName.contains(lineParts[0]))
{
colsName.add(lineParts[0]);
}
if (lineParts.length > 1 && colsValue != null)
{
if (colsValue.containsKey(lineParts[0]))
{
colsValue.put(lineParts[0], colsValue.get(lineParts[0])
+ lineParts[1]);
}
else
{
colsValue.put(lineParts[0], lineParts[1]);
}
}
}
if (i == linesFromLDIF.size() - 1)
rows.add(colsValue);
}
ArrayList<ArrayList<String>> values = new ArrayList<ArrayList<String>>();
FileWriter fileWriter = new FileWriter(csvFile);
BufferedWriter bufWriter = new BufferedWriter(fileWriter);
bufWriter.write(join(colsName, ";") + "\n");
for (HashMap row : rows)
{
ArrayList<String> cel = new ArrayList<String>();
for (String colName : colsName)
{
if (!row.containsKey(colName))
cel.add("");
else
cel.add(row.get(colName).toString());
}
bufWriter.write(join(cel, ";") + "\n");
System.out.println();
values.add(cel);
}
bufWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String join(Collection s, String delimiter) {
StringBuffer buffer = new StringBuffer();
Iterator iter = s.iterator();
while (iter.hasNext()) {
buffer.append(iter.next());
if (iter.hasNext()) {
buffer.append(delimiter);
}
}
return buffer.toString();
}
public ArrayList<String> getLines() {
ArrayList<String> lines = new ArrayList<String>();
try
{
FileReader file = new FileReader(this.lidfFile);
BufferedReader bufReader = new BufferedReader(file);
String line;
while ((line = bufReader.readLine()) != null) {
lines.add(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
public static void main(String[] x) {
LDIFConversor ldifConversor = new LDIFConversor(new File("c:/1.ldif"), new File("c:/convertedFile.csv"));
ldifConversor.convert();
}
}