0

を使用しMicrosoft.Office.Interop.Excelます。次を使用して、互換性97-2003でXLSを保存しようとしました

    private void CreationFichier(_Worksheet template, int nom)
    {
        _Workbook fichierCree = _excel.Workbooks.Add();
        fichierCree.DoNotPromptForConvert = true;
        fichierCree.CheckCompatibility = false;

        var feuilleActiveClasseurCree = (_Worksheet)fichierCree.Sheets[1];
        string nomFichier = (nom - 4).ToString() + ".xls";
        label3.Text = "Creation du fichier "+nomFichier+" ...";
        progressBar1.Value++;
        template.Copy(feuilleActiveClasseurCree);

        fichierCree.SaveAs(_folderdestination.SelectedPath + "\\" + nomFichier, XlFileFormat.xlExcel8);
        fichierCree.Close();
    }

しかし、これにより、互換性を確認するためのポップアップが作成されます。このポップアップは必要ありません。

http://i.stack.imgur.com/8zop9.png

4

1 に答える 1

0

コードだけでこの問題を解決する方法は見つかりませんでしたが、自分に合った解決策を見つけました。私の場合、毎回同じファイルをテンプレートとして開き、新しいファイルとして保存しています。Office.Interop.Excel._Application.Visible = true を使用すると、何が起こっているのかがよくわかります。デスクトップの Excel からマスター テンプレートを取得し、このボックスの [このダイアログを表示しない] を再度チェックした後、再保存しました。ファイルをテンプレートとして使用すると、互換性のために保存するかどうかを尋ねるダイアログでプログラムが中断されなくなりました。

また、ファイル アクセスの問題を防ぐために、テンプレートの System.IO.File.Copy を実行し、新しいファイルを開いて保存します。

これは遅い回答であり、特定の問題を解決できない場合があります。今解決策を探している人の助けになれば幸いです。

于 2014-07-25T19:59:50.223 に答える