Convertir un fichier CSV en fichier QIF

Certaines banques ne proposent pas le téléchargement des opérations d’un compte en fichier QIF, alors que ce format de fichier est parfois requis afin de l’importer dans un logiciel de suivi des finances ou de comptabilité. Je vous présente un exemple de code Powershell afin d’effectuer la conversion entre le format CSV et le format QIF.

param(
    [string]$InFile = "mouvement.csv",
    [string]$InDateFormat = "dd/MM/yyyy",
    [string]$OutFile = "mouvement.qif",
    [string]$OutDateFormat = "MM/dd/yyyy",
    [string]$InEncoding = "Default",
    [String]$OutEncoding = "utf8"
)

$outString = "!Type:Bank`r`n"

Import-Csv -Path $InFile -Delimiter ";" -Encoding $InEncoding | %{
    $date = $_.psobject.Properties.value[0]
    $dateFormatted = [datetime]::ParseExact($date, $InDateFormat,$null).ToString($OutDateFormat)
    $libelle = $_.psobject.Properties.value[1] -replace " +", " "
    $libelle = $libelle.Trim()
    $montant = $_.psobject.Properties.value[2]
    If (-not $montant) {
        $montant = $_.psobject.Properties.value[3]
    }
    $outString += "D$($dateFormatted)`r`n"
    $outString += "T$($montant)`r`n"
    $outString += "M$($libelle)`r`n"
    $outString += "^`r`n"
}

$outString | Out-File -FilePath $OutFile -Encoding $OutEncoding