技術点:=新規のStreamWriter(パス、1つの使用のStreamWriter南西偽、Encoding.GetEncoding( "2312")); 最終文書生成
クラスのデータの組み合わせをチェックし; 2. StringBuilderのSB =新規のStringBuilderを()使い捨てに優れて挿入長い文字列
sb.append(ds.Tables [0] .Columns [K] .ColumnName.ToString()+ "\ tの");
それは"\ tを"見逃すことはできませんこれは非常に重要です!C#の「\ t」は、キーボード上の同じタブであるので[友人が試すことができます:新しいTXTを開き、タブは、2 Tabキーを押しEnterキーを押すと入力し、保存し、保存したtxtファイルにExcelファイルを開くには、3 Tabキーを押しを入力します。あなたは、元のを見つけるオープンに引き出します。書く123のワードは、それぞれ、各セルになります。だから、データベースの外にあるので、ワンタイムリードをデータの山をリンクするために、上記の「\トン」を使用し、それらは、各セルに合わせて入力されます!]
を参照する必要がある:
System.Threadingを使用して、
System.IOを使用して、
以下:
プライベート ボイドのbutton1_Click(オブジェクト送信者、のEventArgs電子) { saveFileDialog1.Title = " 保存的エクセル文件" 。 saveFileDialog1.InitialDirectory = " C:\\ " ; saveFileDialog1.Filter = " Excel97-2003(* .XLS)| * .XLS |すべてのファイル(*。*)| *。* " ; saveFileDialog1.ShowDialog(); もし(saveFileDialog1.FileName == "" || saveFileDialog1.FileName == NULL ) { MessageBox.Show(" 文件名不能为空!" ); 返します。 } 文字列パス= saveFileDialog1.FileName。 文字列コンストラクタ= 「データソース= .;初期カタログ=展示;ユーザID =寺;パスワード= 」; 文字列のSQL = GetStrSql()。 データセットDS = 新しいデータセット(); 使用(SqlConnectionのコン= 新しいSqlConnectionオブジェクト(コンストラクタ)) { SqlDataAdapterオブジェクトダ = 新しい SqlDataAdapterオブジェクト(SQL、CON)。 da.Fill(DS)。 } IF(DS == nullの) { MessageBox.Show(" !悪いデータ収集" ); を返す; } WriteExcel(DS、パス); } パブリック 無効 WriteExcel(DSデータセット、文字列のパス) { 試み { ロングザ・totalCountプロパティ= DS。テーブル[ 0 ] .Rows.Count; lblTip.Text = " 合計" + + totalCountプロパティ" データの断片。" ; のThread.sleep( {1000年); 長い rowRead = 0 ; フロートパーセント= 0 。 StreamWriterのSW = 新しいのStreamWriter(パス、偽、Encoding.GetEncoding(" 2312 " )); StringBuilderのSB = 新しいStringBuilderの(); 用(int型のk = 0 ; K <ds.Tables [ 0 ] .Columns.Count; ++ k個) sb.Append(ds.Tables [ 0 ] .Columns [K] .ColumnName.ToString()+ " \ tを" )。 } sb.Append(Environment.NewLine)。 以下のために(int型 i = 0 ; iがds.Tables [< 0 ;] .Rows.Count iは++ ) { rowReadは ++ ; パーセント =((フロート)(100 * rowRead))/ totalCountプロパティ。 Pbar.Maximum =(INT )totalCountプロパティ。 Pbar.Value =(int型)rowRead。 lblTip.Text = " 正在写入[ sb.Append(Environment.NewLine)。" + percent.ToString(" 0.00 ")+ " %] ...数据的" ; System.Windows.Forms.Application.DoEvents(); のための(INT J = 0 ; J <ds.Tables [ 0 ] .Columns .Count; J ++ ) { sb.Append(ds.Tables [ 0 ] .Rows [I] [J] .ToString()+ " \ tの" ); } } sw.Write(sb.ToString()); SW。フラッシュ(); sw.Close()。 MessageBox.Show(" すでに指定されたExcelのファイルを生成!" ); } キャッチ(例外EX) { MessageBox.Show(ex.Message); } } パブリック 文字列GetStrSqlを() { 文字列 STRSQL = "Dを選択する。*(cBarcode、MAX(ケースhalldoorid '36' を '1' そう '0' 末端)1.1号馆]、MAX(ケースhalldoorid場合 '37' を '1' の他の選択 '0' 末端から)2.1号馆]、MAX(ケースhalldoorid '38' を '1' そう '0' 末端)3.1号馆]、MAX(ケースhalldoorid '39' を '1' そう '0' 末端)[ 4.1号馆]、MAX(ケースhalldoorid '40' を '1' そう '0' 末端)を[5.1号馆]、MAX(ケースhalldoorid '41' を '1' そう '0' 末端)を[6.1号馆]、MAX(ケースhalldoorid '42' を '1' そう '0' 末端)を[8.1号馆]、MAX(ケースhalldoorid '43' を '1' そう '0' 末端)を[1.2号馆] 、MAX(ケースhalldoorid '44' を '1' そう '0' 末端)2.2号馆]、MAX(ケースhalldoorid '45'その後、 '1' そう '0' 末端)3.2号馆]、MAX(ケースhalldoorid場合 '46' を '1' そう '0' 末端)4.2号馆]、MAX(ケースhalldoorid場合 '47' を ' 1' そう '0' 末端)5.2号馆]、MAX(ケースhalldoorid '48' を '1' そう '0' 末端)9.1号馆]、MAX(ケースhalldoorid '49' を '1'そうでなければ '0' 末端)10.1号馆]、MAX(ケースhalldoorid場合 '50' を '1' そう '0' 末端)11.1号馆]、MAX(ケースhalldoorid場合 '51' を '1' そう ' 0' 末端)12.1号馆]、MAX(ケースhalldoorid '52' を '1' そう '0' 末端)13.1号馆]、MAX(ケースhalldooridが '53' を '1' そう '0'エンド)9.2号馆]、MAX(ケースhalldooridが '54' を '1' そう '0' 末端)10.2号馆]MAX(ケースhalldoorid場合 '55' を '1' そう '0' 末端)11.2号馆]、MAX(ケースhalldoorid '56' を '1' そう '0' 末端)12.2号馆]、MAX(ケースhalldoorid場合 '57' を '1' '0' 末端他)13.2号馆]、MAX(ケースhalldoorid場合 '58' を '1' そう '0' 末端)9.3号馆]、MAX(ケースhalldoorid '59' を '1' そう '0' 末端)10.3号馆]、MAX(ケースhalldoorid '60' を '1' そう '0' 末端)11.3号馆]、MAX(ケースhalldoorid 'は場合61' を '1' さもなければ '0' 末端)VIP3.2号馆]、MAX(ケースhalldoorid '62' を '1' そう '0' 末端)VIP11.3号馆]、MAX(ケースhalldooridその後、 '63'、 '1' 他 '0' エンド)[VIP14。cBarcodeによってtblReadCard群からホール3])に参加左DグループcBarcodeによって(からcBarcodeビューアバーコードを選択し(cReadDate tblReadCardからcReadDate「2011-07-08」の間及び「2011-07-11」の別個cBarcodeを選択) cBarcode、[ホール号1.1]、[ホール号2.1]、[ホール号3.1]、[号ホール4.1]、[ホール号5.1]、[ホール号6.1]によってd.cBarcode = C。聴衆バーコード基上)C 、[特許8.1ホール]、[号1.2ホール]、[号2.2ホール]、[号3.2ホール]、[ホール4.2]、[5.2、ホール]、[号ホール9.1]、[号10.1ホール]、[特許11.1ホール]、[号12.1ホール]、[号13.1ホール]、[号ホール9.2]、[号10.2ホール]、[11.2ホール]、[号ホール12.2]、[13.2ホール]、[号9.3ホール]、[ホール号10.3]、[11.3番ホール]、[号VIP3.2博物館、]、[号VIP11.3]、[号VIP14.3ホール]【号ホール9.2]、[号10.2ホール] [ホール11.2] ,, [号12.2ホール] [ホール13.2] ,, [号9.3ホール]、[号10.3ホール]、[号11.3ホール]、[VIP3米国特許第.2ホール]、[号VIP11.3ホール]、[号VIP14.3ホール]【号ホール9.2]、[号10.2ホール] [ホール11.2] ,, [号12.2ホール] [ホール13.2] ,, [号9.3ホール]、[号10.3ホール]、[号11.3ホール]、[VIP3米国特許第.2ホール]、[号VIP11.3ホール]、[号VIP14.3ホール]" ; を返す; STRSQLを }