Excel数据复制到Winform控件ListView

  1. 先给窗体添加一个右键菜单contextMenuStrip
  2. 加一个下拉项【粘贴】
  3. 粘贴事件:
 private void tsmiPaste_Click(object sender, EventArgs e)
        {
            listViewData.Items.Clear();
            listViewData.Columns.Clear();
            listViewData.Columns.Add("", 0, HorizontalAlignment.Center);
            listViewData.Columns.Add("序号", 40, HorizontalAlignment.Right);
            listViewData.Columns.Add("快递单号", 120, HorizontalAlignment.Center);
            listViewData.Columns.Add("修改重量", 80, HorizontalAlignment.Right);

            var i = 0;
            var strShuju = ""; //取得的字符串
            IDataObject iData = Clipboard.GetDataObject();
            if (iData.GetDataPresent(DataFormats.Text))
            {
                strShuju = (string)iData.GetData(DataFormats.Text);
            }
            if (strShuju.IndexOf("\r\n") == -1) return;
            var iShuju = strShuju.Length; //字符串总长度
            while (strShuju != "")
            {
                try
                {
                    var myItem = new ListViewItem();
                    myItem.SubItems.Add((++i).ToString());
                    var strRow = strShuju.Substring(0, strShuju.IndexOf("\r\n")); // 每行字符串
                    var iRow = strShuju.Substring(0, strShuju.IndexOf("\r\n")).Length; //每行字符串长度

                    var iRow1 = 0; //每行字符串长度
                    if (iRow == 0)
                        break;
                    iRow1 = iRow + 1;
                    iRow = iRow + 2;
                    iShuju = iShuju - iRow;
                    strShuju = strShuju.Substring(iRow, iShuju);
                    strRow = strRow + "\t";

                    while (strRow != "")
                    {
                        var strColumn = strRow.Substring(0, strRow.IndexOf("\t")); //每段字符串
                        var iColumn = strColumn.Substring(0, strRow.IndexOf("\t")).Length; //每段字符串长度
                        if (iRow1 == 0)
                            break;
                        iRow1 = iRow1 - iColumn - 1;
                        strRow = strRow.Substring(iColumn + 1, iRow1);
                        myItem.SubItems.Add(strColumn);
                    }
                    listViewData.Items.Add(myItem);
                }
                catch (ArgumentOutOfRangeException)
                {
                    break;
                }
            }
        }
时间: 2024-08-30 15:50:43

Excel数据复制到Winform控件ListView的相关文章

将Excel中的数据读入到GridView控件中

使用Excel文件作为数据源,其实现的代码为: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0; 实例代码: private DataSet CreateDataSource()    {        string strCon;        strCon = "Provider

C# WinForm控件、自定义控件整理(大全)

转:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Label/ProgressBar WinForm下CheckedListBox的数据绑定 Winform 下无闪烁走马灯效果实现 c#,winform,progressbar+la

安卓Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数

WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)

开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定:引用控件.DataBindings.Add("控件属性", 实例对象, "属性名", true); 2) 复杂数据绑定 复杂的数据绑定是将一个以列表为基础的用户控件(例如:ComboBox.ListBox.ErrorProvider.DataGridView等控件)绑

Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数

Winform控件Tag使用规范

背景 Tag在WinForm控件中经常被用来存储临时数据,类型为object,但是当程序中多个地方使用到Tag时,容易造成Tag使用的混乱,Tag是如此重要的一个属性,应该要好好考虑下如何有效的使用Tag服务于程序开发. 借鉴Web开发时,Js可以通过自定义属性,将状态绑定到Dom节点的自定义Attribute上,这也是绝大多数js插件,附加状态数据的方式.如果把字典引入到Tag中,规范约定Tag就是一个键值对组成的字典,那么对状态的存取就不会局限于一个状态,而且通过有效的管理可以更大化的发挥T

.Net WinForm 控件键盘消息处理剖析

在WinForm控件上我们可以看到很多关于键盘消息处理的方法,比如OnKeyDown, OnKeyPress, ProcessCmdKey, ProcessDialogKey,IsInputKey等等,那么这些方法是如何被组织的,每一个方法的具体含义又是什么哪?Win32的键盘消息又是如何到达控件上的这些方法的,本文将着重阐述这些问题,对.Net WinForm控件的键盘消息处理过程进行剖析.  1.      WinForm消息循环 大家都知道WinForm也是依赖于底层的消息机制的,通常我们

[Android Pro] android控件ListView顶部或者底部也显示分割线

reference to  :  http://blog.csdn.net/lovexieyuan520/article/details/50846569 在默认的Android控件ListView在顶部是不显示分割线的,但是我们可以使用一些技巧来显示.我们先来看下默认情况下ListView显示的效果: 可以看到顶部是没有分割线的,但是有时候我们的美工硬是在上面画了一条分割线,没办法,我们也得加上,我们在ListView顶部加上一个Header就可以实现,代码如下 listView.addHea

通过WinForm控件创建的WPF控件无法输入的问题

今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的.而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况. 找到了原因后,一个常规的解决方法是:将WinForm控件换成WP