C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式
后台代码:
//导入
private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e)
{
var path = this.txtbox1.Text;
if (path.Contains(".xlsx") || path.Contains(".xls"))
{
//显示隐藏的弹框
this.Tborders.Visibility = Visibility.Visible;
var data1 = GetDataTable(path);
List<ExcelModel> UList = new List<Model.ExcelModel>(); int cout = data1.Rows.Count;
probar1.Maximum = cout;
probar1.Value = ; UpdateProgressBarDelegate updatePbDelegate = new UpdateProgressBarDelegate(probar1.SetValue);
for (int i = ; i < cout; i++)
{
UList.Add(new ExcelModel() { Code = data1.Rows[i][].ToString(), DName = data1.Rows[i][].ToString(), Name = data1.Rows[i][].ToString(), Company = data1.Rows[i][].ToString() }); Dispatcher.Invoke(updatePbDelegate, System.Windows.Threading.DispatcherPriority.Background, new object[] { System.Windows.Controls.ProgressBar.ValueProperty, Convert.ToDouble(i + ) }); if (cout <= )
{
double db = Math.Ceiling(100.00 / cout);
var df = (db * cout) - ;
this.lable1.Content = (((i + ) * db) - df) + "%";
}
else if (cout > )
{
double db = 100.00 / cout;
if (Math.Floor(((cout - ) * db) + ) == )
{
this.lable1.Content = Math.Floor((i * db) + ) + "%";
}
else if (Math.Ceiling(((cout - ) * db) + ) == )
{
this.lable1.Content = Math.Ceiling((i * db) + ) + "%";
}
} Thread.Sleep(); }
this.datagrid1.ItemsSource = UList;
//beginImport(100, 0);
}
else
{
System.Windows.MessageBox.Show("请选择Excel文件");
}
}
进度条后台主要代码:
#region 进度条
private delegate void UpdateProgressBarDelegate(System.Windows.DependencyProperty dp, Object value); private void beginImport(double max, double v)
{
probar1.Maximum = max;
probar1.Value = v;
UpdateProgressBarDelegate updatePbDelegate = new UpdateProgressBarDelegate(probar1.SetValue);
for (int i = ; i < ; i++)
{
Dispatcher.Invoke(updatePbDelegate, System.Windows.Threading.DispatcherPriority.Background, new object[] { System.Windows.Controls.ProgressBar.ValueProperty, Convert.ToDouble(i + ) });
this.lable1.Content = (i + ) + "%";
Thread.Sleep();
}
}
#endregion
进度条XAML:
<Border Width="302" Height="15" BorderThickness="1" BorderBrush="#999">
<ProgressBar BorderThickness="0" x:Name="probar1" Width="302" Height="15" Background="#fff" Foreground="#199ED8" Style="{StaticResource SimpleProgressBar}">
</ProgressBar>
</Border>
样式:
<Window.Resources>
<!--ProgressBar Style-->
<Style TargetType="ProgressBar" x:Key="SimpleProgressBar">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ProgressBar">
<Grid x:Name="Root" >
<Border x:Name="PART_Track" Background="{TemplateBinding Background}"
CornerRadius="2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<Border x:Name="PART_Indicator" HorizontalAlignment="Left" Background="{TemplateBinding Foreground}"
CornerRadius="2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="Orientation" Value="Vertical">
<Setter Property="LayoutTransform" TargetName="Root" >
<Setter.Value>
<RotateTransform Angle="-90" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式的更多相关文章
- C#实现从EXCEL文件读取数据到SqlServer数据库
用第三方组件:NPOI组件实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...
- C# WinFrom 导入Excel文件,显示进度条
因为WINForm程序是在64位上运行如果使用另外一种快速的读取Excel的方法会报“未在本地计算机上注册“Microsoft.Jet.OLEDB.12.0”提供程序” 所以我就换了现在这种读取有点慢 ...
- 如何让excel文件读取变得更简单
今天给大家安利一款excel文件导入神器,easyexcel,官方地址:(https://github.com/alibaba/easyexcel). 在官网文档中有介绍了其性能. 从上面的性能测试可 ...
- java 读取Excel文件并数据持久化方法Demo
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...
- C#操作Excel文件(读取Excel,写入Excel)
看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,如今共享大家,希望给大家可以给大家带了一定的帮助.另外我们还要注意一些简单的问题1 ...
- 接口自动化测试:参数化封装(excel文件读取)
log4j.properties文件配置 log4j.rootLogger = DEBUG,stdout,F log4j.appender.stdout = org.apache.log4j.Cons ...
- 关于Npoi+excel文件读取,修改文件内容的处理方式
因最近有需求场景,实现对文件的读写操作,又不单独生成新的文件,对于源文件的修改,做了一个简单实现,如下↓ // 要操作的excel文件路径 string fileName = Server.MapPa ...
- Vue项目中导入excel文件读取成js数组
1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...
- 把读取sql的结果写入到excel文件
1.利用pandas模块 # encoding: utf-8 import time import pandas as pd import pymysql def getrel(sql): ''' 连 ...
随机推荐
- JQuery 240中插件
http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.html
- Linux Centos配置ssh客户端工具putty
配置ssh客户端工具putty 1.直接点击putty.exe文件 2.配置putty 3.配置putty编码 4.配置putty字体大小 5.配置putty样式 6.保存配置信息 7.配置MTp ...
- 一:elasticsearch常用操作总结
索引 搜索 mapping 分词器 1.创建索引 http://192.168.65.131:9200/smartom_index 2.查看索引: http://192.168.65.131:9200 ...
- tomcat源码 分析 Catalina
通过查看分析启动脚本,发现最终调用的入口是org.apache.catalina.startup包下面的Bootstrap#main public static void main(String ar ...
- vagrant box保存路径修改
add box的时候默认保存在C盘用户文件夹 C:\Users\xxx.vagrant.d,通过设置VAGRANT_HOME环境变量改变默认位置 WIN setx VAGRANT_HOME “X:/y ...
- autoconf配置的项目,编译debug版本
./configure CFLAGS=" -g " 当然,c++代码就把 CFALGS 改成 CPPFLAGS
- PAT 乙级 1049 数列的片段和(20) C++版
1049. 数列的片段和(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正数数列,我们可以从中截 ...
- react组件的数据传递
在react中,为了解决html标签构建应用的不足,将公共的功能单独抽离成一个文件作为一个组件,在使用的地方按需引入,既然是组件彼此调用,就会涉及到父子组件的通信,下面主要来总结简单的组件通信. 1, ...
- opengl 结果白屏解决方法
最近图形学在做上机实验,需要使用到opengl实验操作,可是我的电脑不给力, 不能显示正确结果,每次都是白屏,无法显示应有的结果. 1.问题:opengl 白屏 2.环境:win7系统,64位.机型是 ...
- jQuery绑定和解绑点击事件及重复绑定解决办法
原文地址:http://www.111cn.net/wy/jquery/47597.htm 绑点击事件这个是jquery一个常用的功能,如click,unbind等等这些事件绑定事情,但还有很多朋友不 ...