.Net Com インポートおよびエクスポート Excel

最初に Microsoft.office.interop.excel への参照を追加します

参照プロセス中に、Microsoft.Office 11.0 Object Library が参照されない場合があります.これは、Office2003 が .net をサポートすることを選択していないことが原因である可能性があります.Office インストール ファイルを再度実行し、Excel アイテムを見つけてノードを展開し、サポートネットを選択

次に、ページで名前空間を使用します。

Excel を使用 = Microsoft.Office.Interop.Excel;

 

詳細なコードは次のとおりです。

#region エクスポート データ
        /// <summary>
        /// 
        /// </summary>
        private void Export()
        {             Excel.Application excel = new Excel.Application();             Excel.Workbooks ワークブック = Excel.Workbooks;             Excel.Workbook ブック = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);             Excel.Worksheet ワークシート = (Excel.Worksheet)workbook.Worksheets[1];             Excel.Range 範囲 = null;             worksheet.Cells[1, 1] = "报关单Excel";             範囲 = (Excel.Range)worksheet.Cells[1, 1];             range.Font.Bold = true;             range.Font.Size = 18;









           //range.Interior.Color = 150; //インデックス、インデックス、および値参照リソースに従って色を設定します/HelpPic  
            range.Horizo​​ntalAlignment = Excel.XlHAlign.xlHAlignCenter;//テキストを中央に設定します
            range = (Excel.Range )worksheet.get_Range (worksheet.Cells[1, 1], worksheet.Cells[1, 5]);
            range.Select();
            range.Merge(false);

            range.Borders[Excel.XlBordersIndex.xlInsideHorizo​​ntal].Weight = Excel.XlBorderWeight.xlThin;
            string FileName = Server.MapPath("..//..//resource//Templetes//") + DateTime.Today.ToString( "yyyyMMdd") + new Random(DateTime.Now.Millisecond).Next(1000000).ToString() + ".xls";
           
            //Foreach IList,And Add Data to Excel
            //Write Excel Header
            worksheet.Cells[3, 1] = "税関申告番号";
            worksheet.Cells[3, 2] = "輸送手段";
            worksheet.Cells[3, 3] = "船荷証券番号";
            worksheet.Cells[3, 4] = "コア販売注文番号";
            worksheet.Cells[3, 5] = "申告単位";
            worksheet.Cells[3, 6] = "事業単位";
            worksheet.Cells[3, 7] = "入出荷単位";
            worksheet.Cells[3, 8] = "申告日";
            worksheet.Cells[3, 9] = "処理状況";
            worksheet.Cells[3, 10] = "インポート/エクスポート";
            worksheet.Cells[3, 11 ] = "領域を閉じる";
            worksheet.Cells[3, 12] = "備考";
            worksheet.Cells[3, 13] = "更新時刻";
            //Excel 本体を書き込む
            int flag = 3;
            foreach (var w in lst )
            {                 flag += 1;                 worksheet.Cells[flag, 1] = w.entry_id_new ;                 worksheet.Cells[flag, 2] = w.TRAF_NAME;                 worksheet.Cells[flag, 3] = w.BILL_NO;                 worksheet.Cells[フラグ、4] = w.APPR_NO;





                worksheet.Cells[フラグ、5] = w.DECL_NAME;
                worksheet.Cells[フラグ、6] = w.TRADE_NAME;
                worksheet.Cells[フラグ、7] = w.SHIPPER;
                worksheet.Cells[フラグ、8] = w.DECL_DATE;
                worksheet.Cells[フラグ、9] = w.PROCESS_STATUS;
                worksheet.Cells[フラグ、10] = w.EXP_IMP;
                worksheet.Cells[フラグ、11] = w.SUB_CUS;
                worksheet.Cells[フラグ、12] = w.NOTES;
                worksheet.Cells[フラグ、13] = w.UPDATE_TIME;             {                 workbook.Saved = true;
            }
            を試してください。                 workbook.SaveCopyAs(ファイル名);             }




            catch (例外例)
            {                 throw (例);             ワークブックを閉じます             ();             if (Excel != null)             {                 Excel.Workbooks.Close();                 エクセル.終了();                 int Generation = System.GC.GetGeneration(excel);                 System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel);                 エクセル = null;                 GC.Collect(生成);             }             GC.Collect();//强行销毁  












            //最近開いた Excel プロセスを閉じる
            System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL");
            System.DateTime startTime = new DateTime();
            int m, killId = 0;
            for (m = 0; m < excelProc.Length; m++)
            {                 if (startTime < excelProc

.StartTime)
                {                     startTime = excelProc.StartTime;                     killId = m;                 }             }             if (excelProc[killId].HasExited == false)             {                 excelProc[killId].Kill();             }             //ダウンロードを提供する               System.IO.FileInfo ファイル = new System.IO.FileInfo(FileName);             Response.Clear();             Response.Charset = "UTF-8";             Response.ContentEncoding = System.Text.Encoding.UTF8;             // "ファイルのダウンロード/名前を付けて保存" のヘッダー情報を追加ダイアログのデフォルトのファイル名を指定する   














            Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
            // ヘッダー情報を追加し、ファイル サイズを指定して、ブラウザーがダウンロードの進行状況を表示できるようにします   
            Response.AddHeader ("Content -Length", file.Length.ToString());
            // 返されたストリームが、クライアントが読み取ることができないストリームであり、ダウンロードする必要があることを指定します   
            Response.ContentType = "Application/ms-excel";
            / / ファイル ストリームをクライアントに送信する   
            Response.WriteFile(file.FullName);
        }
        #endregion

 友人のためにインポートを書きましたが、命名は標準化されておらず、パッケージもありません。ただそれで間に合わせます。変更するのが面倒すぎる

 protected void Button1_Click(object sender, EventArgs e)
        {             string strConn = "server=.;database=dydhb;uid=sa;pwd=111111";             SqlConnection sqlConn = 新しい SqlConnection(strConn);             sqlConn.Open();


            string FilePath = Server.MapPath("Book.xls");
            オブジェクト objOpt = System.Reflection.Missing.Value;
            文字列 a、b、c、d、e1;
            string str = "address_book(bumen,zhiwei,name,office_tel,phone,password) に挿入します values(@bumen,@zhiwei,@name,@office_tel,@phone,@password)";

            Excel.Application エクセル = 新しい Excel.Application();
            Excel.Workbooks ワークブック = Excel.Workbooks;
            Excel.Workbook workbook = workbooks.Open(FilePath, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt, objOpt);
            Excel.Worksheet ワークシート = (Excel.Worksheet)workbook.Worksheets[1];
            for (int i = 2; i <= worksheet.UsedRange.Rows.Count; i++)
            {                 a = ((Excel.Range)(worksheet.Cells[i, 2])).Text.ToString();                 b = ((Excel.Range)(worksheet.Cells[i, 3])).Text.ToString();                 c = ((Excel.Range)(worksheet.Cells[i, 4])).Text.ToString();



                d = ((Excel.Range)(worksheet.Cells[i, 5])).Text.ToString();
                e1 =((Excel.Range)(worksheet.Cells[i, 6])).Text.ToString();
                SqlCommand sqlCmd = new SqlCommand(str, sqlConn);
                sqlCmd.Parameters.AddWithValue("@bumen", a);
                sqlCmd.Parameters.AddWithValue("@zhiwei", b);
                sqlCmd.Parameters.AddWithValue("@name", c);
                sqlCmd.Parameters.AddWithValue("@office_tel", d);
                sqlCmd.Parameters.AddWithValue("@phone", e1);
                sqlCmd.Parameters.AddWithValue("@password", System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(e1, "md5"));

            }
            sqlConn.Close();

            ワークブック.Close();
            if (Excel != null)
            {                 Excel.Workbooks.Close();                 エクセル.終了();                 int Generation = System.GC.GetGeneration(excel);                 System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel);                 エクセル = null;                 GC.Collect(生成);             }             GC.Collect();//强行销毁  







            //最近開いた Excel プロセスを閉じる
            System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL");
            System.DateTime startTime = new DateTime();
            int m, killId = 0;
            for (m = 0; m < excelProc.Length; m++)
            {                 if (startTime < excelProc

.StartTime)
                {                     startTime = ExcelProc

。始まる時間;
                    killId = m;
                }
            }
            if (excelProc[killId].HasExited == false)
            {                 excelProc[killId].Kill();             }         }


 

おすすめ

転載: blog.csdn.net/susieweijs/article/details/6342351