日期:2014-05-17  浏览次数:21127 次

C# [progressBar]进度条显示问题
如下一个方法,分别用DataGridView,ProgressBar,Label的对象作为参数。实现导出datagridview时显示进度条。

/// <summary>
        /// 将datagridview导出为excel文件,导出过程中显示进度条
        /// </summary>
        /// <param name="dgv">DataGridView</param>
        /// <param name="pb">progressBar</param>
        /// <param name="ll">Label</param>
        public static void ExportToExcel(DataGridView dgv, ProgressBar pb, System.Windows.Forms.Label ll)
        {
            System.Data.DataTable dt = dgv.DataSource as System.Data.DataTable;
            if (dt == null) return;
            Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
            if (xlapp == null)
            {
                MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
                return;
            }
            System.Windows.Forms.SaveFileDialog saveDia = new SaveFileDialog();
            saveDia.Filter = "Excel|*xls";
            saveDia.Title = "导出为Excel文件";
            saveDia.FileName = string.Format("{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss"));
            if (saveDia.ShowDialog() == System.Windows.Forms.DialogResult.OK && !string.Empty.Equals(saveDia.FileName))
            {
                Microsoft.Office.Interop.Excel.Workbooks workbooks = xlapp.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
                Microsoft.Office.Interop.Excel.Range range = null;
                long totalCount = dt.Rows.Count;
                pb.Visible = true;//进度条显示
    &nbs