Tag: 进度条

显示一个进度条控件devexpress从Excel中导入数据

我有这样的表单导入数据Excel: 第一种情况是当我select文件Excel然后按进程时,我的表单会显示进程中的进度条控件devexpress。 我的代码: string constr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + txtPath.Text + "; Extended Properties =\"Excel 8.0; HDR = Yes;\";"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand ocmd = new OleDbCommand("SELECT * FROM[Sheet1$]", con); con.Open(); OleDbDataReader odr = ocmd.ExecuteReader(); string kode = ""; string nama = ""; string satuan = ""; string isAktif […]

如何显示内置Excel函数的进度条?

我有一个Excel表设置了大约40,000个值,需要通过用户窗体进行sorting。 为此,我用… myTable.Sort.SortFields.Add Range(strSortBy), xlSortOnValues, xlDescending, xlSortNormal myTable.Sort.Apply …其中myTable是表格,strSortBy是我要sorting的列的标题。 现在,尽pipeExcel的快速sortingfunction,这个数据量开始花费足够长的时间(几秒钟),我想为用户提供某种进度反馈。 我在Excel中创build了几个用户窗体进度条,但是由于Sort是一个内置的 Excel函数,所以我看不到任何显而易见的显示或确定完成百分比的方法。 这是一个失败的原因? 或者有什么方法来确定内置函数的进度? 任何帮助是极大的赞赏。

计算进度条的百分比填充

我无法在Excel VBA中的用户窗体上设置我的进度栏图像的worrect宽度。 我有一个用户窗体,在这个窗体上是一个标签和一个图像。 图像的最大宽度是330。 在从1到intNumberOfGetRows(在本例中为64)的循环中,我想更新图像的宽度属性以显示进度,因为大logging集的每个1000个logging块都放在一个数组中并写入一个csv文件。 这是我的代码: For intRecord = 1 To intNumberOfGetRows + 1 ' outer loop ' put the data in an array and print to file arrContacts = adoRsMailshotAccConData.GetRows(intRows) With fsOutputFile For iDx = 0 To UBound(arrContacts, 2) .WriteLine arrContacts(0, iDx) Next '.Close End With sMsg = "Number " & intRecord & " […]

部分WinForm UI冻结时,通过Windows任务栏的Excel VSTO切换窗口或应用程序

我有一个奇怪的问题(可能是线程问题),一直困扰着我。 我想为我在Excel / VSTO中运行的任务创build一个进度条,通过单击function区上的button启动它。 由于所有对Excel对象模型的访问都必须在主线程中进行,所以我在单独的线程上以模态方式显示我的进度表单。 这在大多数情况下都很有效,但是当我通过Windows任务栏切换应用程序或窗口时会发生奇怪的事情。 例如,如果我处于运行中并且Excel最大化,并且在任务栏上单击了Chrome以使其聚焦,那么我将单击回到Excel,然后在任务栏预览中单击打开的Excel工作簿,有时UI会在进度条中部分冻结。 在Excel 2007/2010中,我仍然可以看到正在更新的进度栏,但是我不能拖动工具栏或单击“取消”button。 这就是为什么我说UI部分冻结。 类似的东西发生在Excel 2013/2016,但我还没有testing过。 如果Excel具有焦点,并且在任务执行期间不切换到另一个窗口,则进度条可以很好地工作。 有没有人有一个想法可能会出错? 有没有另外一种方法可以在Excel中显示进度条来提供一致和可靠的行为? 请注意,实际任务需要在Excel主要UI线程上运行,并且进度表单是交互式并正确显示的限制,它需要位于辅助UI线程上。 正因为如此,像使用BackgroundWorker的解决scheme将无法正常工作。 class RunSampleProgressTask { private ProgressForm _form; internal volatile bool CancelPending; internal volatile AutoResetEvent SignalEvent = new AutoResetEvent(false); internal RunSampleProgressTask() { //create a new workbook Globals.ThisAddIn.Application.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); int hwnd = GetHwnd(); var thread = new Thread(() => ShowProgressForm(hwnd)); thread.SetApartmentState(ApartmentState.STA); thread.Priority […]

如何在我的项目中实现进度条?

我一直在看很多关于进度条的例子,所以我迷惑了自己。 在我的项目中,我有一个excel.png图标,单击时会运行一个导出表格数据到excel的页面。 正如你所能理解的,编译和导出数据可能需要一些时间,大约需要30多秒。 这是用户有足够的时间开始点击其他项目,因为没有任何迹象表明任何事情正在发生。 这个解决scheme当然是一个进度指标,有很多例子说明如何build立进度指标。 但是,我看不出指标如何在我的项目中使用,我的难处在于代码的位置以及它的样子。 我输出excel的数据的页面被称为GenSRPFLens.cshtml: @{ Layout = null; var appData = Server.MapPath("~/App_Data"); var originalFileName = "orgSRPLens.xls"; var newFileName = string.Format("{0}.xls", Guid.NewGuid().ToString()); var originalFile = Path.Combine(appData, originalFileName); var newFile = Path.Combine(appData, newFileName); File.Copy(originalFile, newFile); var lenscat =Database.Open("A-LensCatFE-01SQL"); var CustomerCode = !UrlData[0].IsEmpty()?UrlData[0]:"1"; var sql = "Select * from dbo.qryDiscountLensPrice WHERE CustomerCode=@0 Order by LensForm, […]

如何在TextBlock和ProgressBar中显示进度?

我想显示我的Excel阅读程序的进度。 这里有一些代码: public void ReadExcel() { //Do something (get Excel File…) txtProgress.Text += "Start"; int rows = exRng.Rows.Count; int column = exRng.Columns.Count; progProgress.Maximum = rows;//ProgressBar txtProgress.Text += "Start";//TextBlock for (int i = 1; i <= rows; i++) { progProgress.Value = i; //Do something txtProgress.Text += "\n " + Name + " was created"; } } […]

如何访问Office应用程序状态栏中的进度栏

我为Word和Excel构buildVBA应用程序,有没有办法访问有时出现在Office状态栏中的进度条。