C#中EXCEL表格的内容进度条实现

 public  void ExportToExcel()        {            DataTable dt = getDataTable();

            if (dt == null)            {                MessageBox.Show("没有数据可供导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);                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)|*.xls";            saveDia.Title = "导出为Excel文件";            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];//取得sheet1                 Microsoft.Office.Interop.Excel.Range range = null;                long totalCount = dt.Rows.Count;                long rowRead = 0;                float percent = 0;                string fileName = saveDia.FileName;

                //写入标题                 for (int i = 0; i < dt.Columns.Count; i++)                {                    worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;                    range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];                    //range.Interior.ColorIndex = 15;//背景颜色                     range.Font.Bold = true;//粗体                     range.Font.Size = 11;//字体大小                     range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//居中                     //加边框                     range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);                    //range.ColumnWidth = 4.63;//设置列宽                     //range.EntireColumn.AutoFit();//自动调整列宽                     //r1.EntireRow.AutoFit();//自动调整行高                 }                //写入内容 

                for (int r = 0; r < dt.DefaultView.Count; r++)                {                    this.state.Text = "正在导出数据......已导出" + (r + 1).ToString() + "条/共" + dataGridView1.Rows.Count.ToString() + "条";                    this.progressBar1.Value = r + 1;

                    for (int i = 0; i < dt.Columns.Count; i++)                    {                        worksheet.Cells[r + 2, i + 1] = dt.DefaultView[r][i];                        range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];                        range.Font.Size = 10;//字体大小                         //加边框                         range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);                        range.EntireColumn.AutoFit();//自动调整列宽                     }                    rowRead++;                    percent = ((float)(100 * rowRead)) / totalCount;                    System.Windows.Forms.Application.DoEvents();                }                range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;                if (dt.Columns.Count > 1)                {                    range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;                }                workbook.Saved = true;                workbook.SaveCopyAs(fileName);

                workbooks.Close();                if (xlApp != null)                {                    xlApp.Workbooks.Close();                    xlApp.Quit();                    int generation = System.GC.GetGeneration(xlApp);                    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);                    xlApp = null;                    System.GC.Collect(generation);                }

                GC.Collect();//强行销毁                 #region 强行杀死最近打开的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[m].StartTime)                    {                        startTime = excelProc[m].StartTime;                        killId = m;                    }                }                if (excelProc[killId].HasExited == false)                {                    excelProc[killId].Kill();                }                #endregion                if (MessageBox.Show(this, "数据已经成功导出到:" + saveDia.FileName.ToString() + ",是否打开文件?", "导出完成", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)                {                    System.Diagnostics.Process.Start(saveDia.FileName);                }            }            else            {                GC.Collect();//强行销毁                 #region 强行杀死最近打开的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[m].StartTime)                    {                        startTime = excelProc[m].StartTime;                        killId = m;                    }                }                if (excelProc[killId].HasExited == false)                {                    excelProc[killId].Kill();                }                #endregion            }            panel2.Visible = false;

}        #endregion
时间: 2024-10-13 12:53:50

C#中EXCEL表格的内容进度条实现的相关文章

Linux中实现一个简单的进度条【转】

转自:http://blog.csdn.net/yuehailin/article/details/53999288 说起进度条,其实大家常常见到,比如说你在下载视频或文件的时候,提示你当前下载进度的就是我们今天要说的进度条,进度条的模拟实现是挺简单的,但是要做的比较实用还是需要注意很多地方的,下来我就一步步的深入分析一下进度条得实现. 1.起初写下了这样的代码,解释以下几点:     1>首先我们需要将[ ]固定在左右两边,中间预留下空间,然后用“=”进行填充.这里printf("[%-

C# WinFrom 导入Excel文件,显示进度条

因为WINForm程序是在64位上运行如果使用另外一种快速的读取Excel的方法会报“未在本地计算机上注册“Microsoft.Jet.OLEDB.12.0”提供程序” 所以我就换了现在这种读取有点慢的方式 PS 采用上一种方式要更改成32位,由于我的系统有其他需求只有64位支持,所以不得不放弃,而且也需要客户端注册这个 Form1 控件 一个显示路径的TextBox: txt_ExcelPath 两个按钮 Button:btn_selectpath,btn_savedata 一个backgro

IOS中公布应用程序,进度条一直不走怎么处理

在IOS中公布应用程序非常是喜闻乐见. 近期1周.我更新了6次版本号.可是时不时的会卡住,进度条不走. 最后总结了几个原因. 1.在公布前你要确认自己的证书是否配置正确 2.DNS域名server有没有配置. 8.8.8.8 和 8.8.4.4 或者114.114.114.114 (这3个域名地址来回的尝试.本人在这3个域名下都成功的公布过)附图 3.直接archive.可是要先验证下.这样假设证书或者这书配置文件有问题能够直接改动.

Linux中ctags、make以及进度条小程序(\r的应用)

一.ctags  查看函数定义的好工具 ctags -R 在当前目录建立tags文件 ctrl +]  + 回车 跳到函数定义处 ctrl + t 返回 二.make与Makefile make 是一条命令 Makefile 是一个文件 make的执行需要一个Makefile文件 Makefile 两个重要关系 依赖关系 依赖方法 touch Makefile/makefile 1 依赖方法前面要有Tab键 2 进行过程从上向下 向下时只要有一个可以执行就回退(向上走.退栈) 不再执行下面的(伪

HTML5中的audio在react中的使用----语音播放进度条、倍速播放、下载等

最近做了一个将通话记录,语音转文字并可以在聊天记录里标注动机和摘要的需求,上图只是一个小小的模块,第一次接到使用到语音相关的需求,记录一下 上图是一个客服聊天记录的模块,语音转文字,将录音展示出来,可以音频播放,可以滑动进度条,倍速播放等等,以前自己心血来潮,使用原生js写过一个类似于网易音乐,播放音乐的播放器,包括进度条,音量调节啥的.当然做项目吗,还是使用HTML自带的更好,省时省力高高效我们的service后台前端工程使用的是react + ant-design + node作为中间层后端

python中excel表格的读写

1 #!usr/bin/env python 2 #-*- coding:utf-8 -*- 3 import xlrd 4 import xlwt 5 from xlutils.copy import copy 6 import os 7 8 data = xlrd.open_workbook('M3000.xls') #打开一个excel表格 9 table = data.sheets()[0] #通过该方法读取的sheet是只读的,不能进行写操作 10 rows = table.nrows

java编程之POI读取excel表格的内容

07版本的excel需要另外加一个jar包.xbean.jar的jar包 读取代码模板.利用模板介绍读取excel的一些poi的api这是重点 1 /** 2 * 读取excel文件 3 * @Title: readExcel 4 * @Description: TODO(这里用一句话描述这个方法的作用) 5 * @author 尚晓飞 6 * @date 2014-11-10 上午8:58:01 7 * @param readPath 读取电脑硬盘上某个excel的绝对路径 例如:C://20

如何使excel表格的内容自动添加前缀

一.假设是要在一列的单元格内容前加上固定的内容,则 方法一在原单元格实现,分两种情况 如果原单元格的内容是数字内容,要在原数字前添加"ABC"这样的前缀则选中这些单元格----右键----设置单元格格式---自定义---类型中写入 "ABC"G/通用格式 ---确定 如果原单元格的内容是文本内容,要在原内容前添加"ABC"这样的前缀则选中这些单元格----右键----设置单元格格式---自定义---类型中写入 "ABC"@ -

新建excel文件——xlwt库——新建一个最简单的excel表格——为内容设置style——并写入数据

参考:https://www.jianshu.com/p/fc97dd7e822c import xlwt #导入模块 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') #设置字体样式 font = xlwt.Font() #字体 font.name = 'Time New Roman' #加粗 font.bold = True #下划线 font.underline = Tru