You can use a workflow and sdk script to generate a csv.
Set your header manually and popule your body using a search request.

1°) Create your CSV File using SDK Script (C# .NET)
namespace WorkflowActivity.Scripting.CreateCSVFileandHEADER
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Text;
/// <summary>
/// Offre une ou plusieurs méthodes qui peuvent être exécutées au moment de l'exécution de l'activité de scriptage du flux de travail.
/// </summary>
public class Script1 : ScriptClass90
{
/// <summary>
/// Cette méthode est exécutée quand l'activité est effectuée.
/// </summary>
protected override void Execute()
{
// Path Destination
string fpath = "C:\\Users\\yourname\\Desktop\\";
// if Path doesn't exist, create it
if(!System.IO.Directory.Exists(fpath))
System.IO.Directory.CreateDirectory(fpath);
// Name file
fpath = System.IO.Path.Combine(fpath, "myfile.csv");
// Set the HEADER and add a linebreak
System.IO.File.WriteAllText(fpath, "col1|col2|col3" + Environment.NewLine);
}
}
}
2°) Search all your files in Laserfiche and retrieve the fields you want
3°) Do a loop
4°) Set your col1's value, col2's value ...

5°) Add your value to your CSV
namespace WorkflowActivity.Scripting.AddLinetoCSV
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Text;
/// <summary>
/// Offre une ou plusieurs méthodes qui peuvent être exécutées au moment de l'exécution de l'activité de scriptage du flux de travail.
/// </summary>
public class Script1 : ScriptClass90
{
/// <summary>
/// Cette méthode est exécutée quand l'activité est effectuée.
/// </summary>
protected override void Execute()
{
// Path Destination
string fpath = "C:\\Users\\yourname\\Desktop\\";
// Name file
fpath = System.IO.Path.Combine(fpath, "myfile.csv");
// Add the BODY and a linebreak
System.IO.File.AppendAllText(fpath, Convert.ToString(GetTokenValue("Col1"))+"|"+Convert.ToString(GetTokenValue("Col2"))+"|"+Convert.ToString(GetTokenValue("Col3")) + Environment.NewLine);
}
}
}
Then "Voilà"
