亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? class2.cs

?? 將MS SQL中的數據導入Excel文件 C#源代碼
?? CS
字號:
?using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel=Microsoft.Office.Interop.Excel;
using System.Diagnostics;

namespace ExportToExcel
{

    public class ExcelManager : IDisposable
    {  
        Excel.Range m_objRange = null;
        Excel.Application m_objExcel = null;
        Excel.Workbooks m_objBooks = null;
        Excel._Workbook m_objBook = null;
        Excel.Sheets m_objSheets = null;
        Excel._Worksheet m_objSheet = null;
        Excel.QueryTable m_objQryTable = null;
        object m_objOpt = System.Reflection.Missing.Value;
        //DataBase-used variable
        private System.Data.SqlClient.SqlConnection sqlConn = null;
        private string strConnect = string.Empty;
        private System.Data.SqlClient.SqlCommand sqlCmd = null;

        //Sheets variable
        private double dbSheetSize = 65535;//the hight limit number in one sheet
        private int intSheetTotalSize = 0;//total record can divied sheet number
        private double dbTotalSize = 0;//record total number

        /// <summary>
        /// 建構函數
        /// </summary>
        public ExcelManager() { }

        /// <summary>
        /// 建構函數
        /// </summary>
        /// <param name="dbHL">一個Excel表格的最大記錄數</param>
        /// <param name="dbTotal">該數據庫表共查詢出多少條記錄</param>
        /// <param name="intDivide">查詢出的記錄可分成幾個Excel</param>
        /// <param name="conn">sqlConnection</param>
        public ExcelManager(Double dbHL, Double dbTotal, int intDivide, SqlConnection conn)
        {
            dbSheetSize = dbHL;
            intSheetTotalSize = intDivide;
            dbTotalSize = dbTotal;
            sqlConn = conn;
        }
        /// <summary>
        /// 建構函數
        /// </summary>
        /// <param name="dbHL">一個Excel表格的最大記錄數</param>
        /// <param name="strTableName">需查詢的數據庫的表名</param>
        /// <param name="conn">sqlConnection</param>
        public ExcelManager(Double dbHL, string strTableName, SqlConnection conn)
        {
            dbSheetSize = dbHL;
            sqlConn = conn;
            intSheetTotalSize = GetTotalSize(strTableName, sqlConn);
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        private void KillProcess(string processName)
        {
            System.Diagnostics.Process myproc = new System.Diagnostics.Process();
            //得到所有打開的進程 
            try
            {
                foreach (Process thisproc in Process.GetProcessesByName(processName))
                {
                    if (!thisproc.CloseMainWindow())
                    {
                        thisproc.Kill();
                    }
                }
            }
            catch (Exception Exc)
            {
                throw new Exception("", Exc);
            }
        }

        public void KillExcel()
        {
            KillProcess("Excel");
        }
        private void Dispose(bool disposing)
        {
            if (disposing)
            {
                // Dispose managed resources.
                //Marshal.FinalReleaseComObject(m_objExcel);
                m_objRange = null;
                m_objSheet = null;
                m_objSheets = null;
                m_objBooks = null;
                m_objBook = null;
                m_objExcel = null;
            }
        }
        /// <summary>
        /// 取得總記錄數跟可分成幾個Excel sheet.
        /// </summary>
        /// <param name="strTableName">被查詢的數據庫的表名</param>
        /// <param name="sqlConn">sqlConnection</param>
        /// <returns>可分成Excel Sheet的個數</returns>
        private int GetTotalSize(string strTableName, SqlConnection sqlConn)
        {
            //sqlConn = new System.Data.SqlClient.SqlConnection(strConnect);
            sqlCmd = new System.Data.SqlClient.SqlCommand("Select Count(*) From " + strTableName, sqlConn);
            if (this.sqlConn.State == ConnectionState.Closed) sqlConn.Open();
            dbTotalSize = (int)sqlCmd.ExecuteScalar();
            sqlConn.Close();
            return (int)Math.Ceiling(dbTotalSize / this.dbSheetSize);
        }

        /// <summary>
        /// 新建一個Excel實例
        /// </summary>
        /// <param name="strTitle">Excel表頭上的文字</param>
        public void DeclareExcelApp(string[] strTitle, string strSql, string strTableName, string strMastTitle)
        {
            m_objExcel = new Excel.ApplicationClass();
            m_objExcel.Visible = false;
            m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
            m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));
            m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
            if (intSheetTotalSize <= 3)
            {
                if (this.dbTotalSize <= this.dbSheetSize)
                {
                    this.ExportDataByQueryTable(1, false, strTitle, strSql, strTableName, strMastTitle);
                    return;
                }
                else if (this.dbTotalSize <= this.dbSheetSize * 2)
                {
                    this.ExportDataByQueryTable(1, false, strTitle, strSql, strTableName, strMastTitle);
                    this.ExportDataByQueryTable(2, true, strTitle, strSql, strTableName, strMastTitle);
                    return;
                }
                else
                {
                    this.ExportDataByQueryTable(1, false, strTitle, strSql, strTableName, strMastTitle);
                    this.ExportDataByQueryTable(2, true, strTitle, strSql, strTableName, strMastTitle);
                    this.ExportDataByQueryTable(3, true, strTitle, strSql, strTableName, strMastTitle);
                    return;
                }
            }
            for (int i = 3; i < intSheetTotalSize; i++)
            {
                m_objSheets.Add(m_objOpt, m_objSheets.get_Item(i), m_objOpt, m_objOpt);
            }
            ExportDataByQueryTable(1, false, strTitle, strSql, strTableName, strMastTitle);
            for (int i = 2; i <= m_objSheets.Count; i++)
            {
                ExportDataByQueryTable(i, true, strTitle, strSql, strTableName, strMastTitle);
            }
        }
        /// <summary>
        /// 以用戶輸入的文件名保存文件
        /// </summary>
        public void SaveExcelApp(string excelFileName)//
        {
            //string excelFileName = string.Empty;
            //SaveFileDialog sf = new SaveFileDialog();


            //sf.Filter = "*.xls|*.*";
            //if (sf.ShowDialog() == DialogResult.OK)
            //{
            //    excelFileName = sf.FileName;
            //}
            //else
            //{
            //    return;
            //}
            try
            {
                m_objBook.SaveAs(excelFileName, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt,
                    Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
                if (m_objExcel != null)
                    m_objExcel = null;
            }
            catch (Exception e)
            {
                string ssss;
                ssss = e.Message + "||" + e.Data;
            }
        }
        /// <summary>
        /// 利用Excel的QueryTable導出數據
        /// </summary>
        /// <param name="intSheetNumber">導出第幾個sheet</param>
        /// <param name="blIsMoreThan">余下的數據是否大于指定的每個Sheet的最大記錄數</param>
        /// <param name="strTitle">表頭,需與查詢sql語句對齊一致。</param>
        /// <param name="strSql">查詢的sql語句,表頭的文字需與該sql語句對齊一致。</param>
        /// <param name="strTablName">查詢的表名</param>    
        /// <param name="strMastTitle">主標題</param>
        /// </summary>
        public void ExportDataByQueryTable(int intSheetNumber, bool blIsMoreThan, string[] strTitle, string strSql, string strTablName, string strMastTitle)
        {
            string strQuery = string.Empty;
            if (blIsMoreThan)
            {
                strQuery = "Select Top " +
                    this.dbSheetSize + strSql + "  From " + strTablName + " Where Not  OrderID In (Select Top " +
                    dbSheetSize * (intSheetNumber - 1) + "  OrderID From " + strTablName + ")";
            }
            else
            {
                strQuery = "Select Top " + this.dbSheetSize + strSql + "  From " + strTablName;

            }
            m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(intSheetNumber));

            m_objSheet.Cells[1, 1] = strMastTitle;
            m_objSheet.Cells[2, 1] = "打印日期" + DateTime.Now.ToString(); //DateTime.Now.ToShortDateString();
            for (int i = 1; i <= strTitle.Length; i++)
            {
                m_objSheet.Cells[4, i] = strTitle[i - 1].ToString();
            }
            m_objRange = m_objSheet.get_Range("A5", m_objOpt);
            m_objQryTable = m_objSheet.QueryTables.Add("OLEDB;Provider=SQLOLEDB.1;" + sqlConn.ConnectionString, m_objRange, strQuery);
            m_objQryTable.RefreshStyle = Excel.XlCellInsertionMode.xlInsertEntireRows;
            m_objQryTable.FieldNames = false;
            m_objQryTable.Refresh(false);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品原创巨作av| 久久色在线观看| 日本福利一区二区| 99精品国产热久久91蜜凸| 风间由美性色一区二区三区| 国产精品香蕉一区二区三区| 国产综合成人久久大片91| 久久国产精品无码网站| 国产专区欧美精品| 国模一区二区三区白浆| 国产99久久久精品| 成人爱爱电影网址| 91在线精品一区二区三区| 色老汉av一区二区三区| 欧美性xxxxxxxx| 欧美天堂亚洲电影院在线播放| 欧美主播一区二区三区美女| 欧美性色欧美a在线播放| 678五月天丁香亚洲综合网| 91精品国产综合久久久久久久 | 开心九九激情九九欧美日韩精美视频电影 | 精品日韩欧美在线| 久久久久久久久久久99999| 2020国产精品自拍| 中日韩av电影| 亚洲午夜精品网| 日本成人在线网站| 国产乱码精品一区二区三区av| 国产不卡高清在线观看视频| k8久久久一区二区三区| 欧美日韩精品免费观看视频| 欧美成va人片在线观看| 欧美国产在线观看| 亚洲大片免费看| 久久国产精品区| av电影在线观看不卡| 欧美性受xxxx黑人xyx性爽| 精品久久人人做人人爱| 国产精品国产三级国产aⅴ中文| 亚洲国产一区二区视频| 国产一区二区按摩在线观看| 91亚洲永久精品| 欧美一区二区视频在线观看| 欧美国产欧美综合| 亚洲成人一区二区在线观看| 精品在线亚洲视频| 色综合久久中文综合久久牛| 日韩精品一区二区三区视频播放| 中文字幕在线不卡一区二区三区| 日韩精品免费专区| 欧美午夜在线一二页| 91精品国产色综合久久不卡电影| 日本一区二区三区久久久久久久久不 | 欧美精品免费视频| 国产色91在线| 香蕉影视欧美成人| av在线一区二区三区| 日韩欧美你懂的| 一区二区在线观看免费视频播放| 极品少妇xxxx偷拍精品少妇| 色婷婷精品大视频在线蜜桃视频| 欧美va亚洲va| 偷窥少妇高潮呻吟av久久免费| 丰满少妇久久久久久久| 欧美一级一区二区| 亚洲综合图片区| av在线免费不卡| 国产性天天综合网| 蜜臀av一级做a爰片久久| 色噜噜狠狠色综合欧洲selulu| 久久久亚洲综合| 日韩av在线发布| 在线观看视频91| 中文字幕在线一区| 黄色成人免费在线| 5858s免费视频成人| 一区二区三区四区激情| 不卡视频一二三| 国产调教视频一区| 精品一二线国产| 91精品国产麻豆国产自产在线| 一区二区三区在线观看国产| 成人中文字幕在线| 久久综合狠狠综合久久激情 | 欧美日韩一区精品| 亚洲免费在线播放| 成人美女视频在线观看18| 精品国产一区二区三区四区四 | 日日摸夜夜添夜夜添亚洲女人| 91亚洲国产成人精品一区二区三| 欧美国产成人精品| 国产精品一品二品| 久久在线观看免费| 精品一区二区三区的国产在线播放| 欧美绝品在线观看成人午夜影视| 亚洲自拍偷拍网站| 在线这里只有精品| 亚洲午夜免费福利视频| 欧美亚洲一区二区三区四区| 亚洲同性gay激情无套| 99麻豆久久久国产精品免费 | 午夜精品影院在线观看| 欧美日韩中字一区| 午夜欧美大尺度福利影院在线看| 欧美午夜一区二区三区| 五月天久久比比资源色| 欧美色偷偷大香| 日韩高清一区在线| 欧美一激情一区二区三区| 男女性色大片免费观看一区二区 | 欧美性色黄大片| 亚洲二区视频在线| 欧美日韩一区二区在线观看视频 | 国产综合色产在线精品| 久久久久久久久久久电影| 国产风韵犹存在线视精品| 中文字幕不卡在线| 色综合天天综合网国产成人综合天 | jizzjizzjizz欧美| 亚洲丝袜精品丝袜在线| 在线视频你懂得一区| 亚洲一区成人在线| 欧美一区二区三区啪啪| 激情久久五月天| 中文字幕乱码久久午夜不卡 | 成人久久久精品乱码一区二区三区| 中文字幕乱码日本亚洲一区二区| 91在线视频免费观看| 婷婷综合久久一区二区三区| 精品国产sm最大网站免费看| 国产**成人网毛片九色 | 亚洲亚洲精品在线观看| 欧美一区二区网站| 国产成人精品免费一区二区| 一区二区三区在线视频播放| 欧美精品久久99久久在免费线| 国产在线一区二区综合免费视频| 中文字幕一区二区三区在线观看| 色8久久精品久久久久久蜜| 婷婷中文字幕综合| 久久精品综合网| 欧美三区在线观看| 国产一区不卡精品| 亚洲免费在线电影| 精品国产免费久久| 99re这里只有精品视频首页| 日韩成人一级片| 国产精品国产馆在线真实露脸| 欧美精品一级二级| 粉嫩av一区二区三区在线播放 | 麻豆91精品视频| 国产精品国产三级国产普通话蜜臀| 欧美人妇做爰xxxⅹ性高电影| 国产精品91xxx| 亚洲观看高清完整版在线观看| 久久一区二区三区四区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 六月丁香婷婷色狠狠久久| 国产精品久久久久久久岛一牛影视| 欧美区在线观看| 99热在这里有精品免费| 久久电影国产免费久久电影| 一区二区三区欧美久久| 久久久欧美精品sm网站| 欧美精品乱码久久久久久| jlzzjlzz亚洲女人18| 精品中文字幕一区二区| 亚洲第一综合色| 亚洲欧美激情一区二区| 久久综合资源网| 欧美精选午夜久久久乱码6080| 99久久婷婷国产精品综合| 精品亚洲成a人在线观看| 亚洲444eee在线观看| 中文字幕日韩欧美一区二区三区| 2020国产精品| 日韩欧美在线观看一区二区三区| 91国偷自产一区二区三区观看| 国产精品996| 久久99国产精品久久99| 午夜精品视频一区| 一区二区视频在线| 国产精品三级av在线播放| 精品奇米国产一区二区三区| 欧美丰满少妇xxxxx高潮对白| 色综合久久综合中文综合网| 成人午夜精品在线| 国产一区999| 国产尤物一区二区| 久久www免费人成看片高清| 日本在线播放一区二区三区| 亚洲第一在线综合网站| 亚洲综合男人的天堂| 一区二区三区日韩欧美| 亚洲欧洲性图库| 亚洲视频一二区| 综合久久久久久| 国产精品国产精品国产专区不蜜 | 美腿丝袜亚洲三区| 日本sm残虐另类|