Excelへのデータのエクスポート大量の(Microsoft Excelがコントロールを使用していない)---------------転送CSDN - rocket2010

技術点:=新規の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を
        }

 

おすすめ

転載: www.cnblogs.com/brian93/p/11271484.html
おすすめ