2017-11-27 6 views
0

Excelでデータテーブルからデータをエクスポートするこのコードを持っていますが、代わりに自分自身を@ ""ユーザーが自分で場所を選択するようにしてください、ありがとう。私はCでファイルの場所を選択するようにユーザーを作ることができます

DataTable dt = hpl.SearchUserGroup(Convert.ToInt32(txtSearch.Text)); 
Workbook book = new Workbook();     
Worksheet sheet = book.Worksheets[0];    
sheet.InsertDataTable(dt, true, 1, 1); 
book.SaveToFile(@"", ExcelVersion.Version97to2003); 
+0

これはあなたが探しているものかもしれません:https://stackoverflow.com/questions/11624298/how-to-use-openfiledialog-to-select-a-folder – Jaxi

+2

Asp.Net? WPF? Winforms?コンソール? – Crowcoder

+0

@Jaxiこれを試しましたが、 "現在のスレッドは、OLE呼び出しを行う前に、シングルスレッドアパートメント(STA)モードに設定する必要があります。メイン関数にSTAThreadAttributeが設定されていることを確認してください。デバッガがプロセスに接続されています。理由は分かりません –

答えて

0

次のようなものが必要な場合があります。 私はあなたがすべての問題に直面する場合は私に知らせてくださいのVisual Studioで

string folderPath = string.Empty; 

DataTable dt = hpl.SearchUserGroup(Convert.ToInt32(txtSearch.Text)); 
Workbook book = new Workbook();     
Worksheet sheet = book.Worksheets[0];    
sheet.InsertDataTable(dt, true, 1, 1); 

using(var folderLoc = new FolderBrowserDialog()) 
{ 
    DialogResult dlgResult = folderLoc.ShowDialog(); 

    if (dlgResult == DialogResult.OK) 
    { 
     folderPath = folderLoc.SelectedPath;   
    } 
} 
//create a temp file with .xls extension 
folderPath += Path.GetTempFileName().Replace(".tmp", ".xls"); 

book.SaveToFile(folderPath, ExcelVersion.Version97to2003); 

をこれをテストする機会がなかったです。

+0

fbdとは何ですか?原因は私にその言葉に誤りを見せているのですか? –

+0

こんにちは、私の謝罪です。今すぐコードを修正しました。 – Shammas

+0

"現在のスレッドは、OLE呼び出しを行う前にシングルスレッドアパートメント(STA)モードに設定する必要があります。メイン関数にSTAThreadAttributeが設定されていることを確認してください。このエラーはこの行に表示されています。DialogResult dlgResult = folderLoc.ShowDialog(); –