数据导出和TreeView

一、数据导出:
将数据库的数据导出成Excel工作表或是Word文档
实际上是将一个泛型集合导出出去
(1)添加控件
saveFileDialog
(2)数据成表格的形式输出出去
<table></table> 拼成html里面的table表格结构,拼成一个字符串,导出出去

(3)字符串拼接效率低,消耗内存大
StringBuilder ss = new StringBuilder();//实例化
ss.Append();//添加

(4)导出数据时开线程节省时间,防止程序假死;进度条显示进度。

代码:


List<Product1> list=null;
             int a = 0;

       private void button1_Click(object sender, EventArgs e)
        {
            //一个按钮要可以让用户选择导出的文件格式
            saveFileDialog1.Filter = "Excel工作表|*.xlsx|Word文档|*.doc";
            //名字按照时间自动生成
            saveFileDialog1.FileName = DateTime.Now.Year + "年" + DateTime.Now.Month + "月数据";
            DialogResult dr = saveFileDialog1.ShowDialog(); //获取一个用户要保存的路径
            if (dr == DialogResult.OK)
            {
                StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);//输出流
                {
                    Thread th = new Thread(NewMethod);//实例化线程
                    th.IsBackground = true;
                    th.Start(sw);//开线程
                }
            }
        }
       //导出数据的函数
        private void NewMethod(object sw)
        {
            StreamWriter sww = (StreamWriter)sw;
            StringBuilder ss = new StringBuilder();//实例化StringBuilder类
            ss.Append("<table border=\"1\">");//边框
            //表头
            ss.Append("<tr><td>序号</td><td>用户名</td><td>密码</td><td>昵称</td><td>性别</td><td>年龄</td><td>生日</td><td>民族</td></tr>");
            b = list.Count();//集合的个数
            progressBar1.Maximum = b;//滚动条的最大值是集合的个数
            foreach (Product1 u in list)
                {
                    ss.Append("<tr>");
                    ss.Append("<td>" + u.ProductId + "</td>");
                    ss.Append("<td>" + u.ProductName + "</td>");
                    ss.Append("<td>" + u.ProductCategory + "</td>");
                    ss.Append("<td>" + u.ProductUnit + "</td>");
                    ss.Append("<td>" + u.ProductArea + "</td>");
                    ss.Append("<td>" + u.ProductDate + "</td>");
                    ss.Append("<td>" + u.ProductLif + "</td>");
                    ss.Append("</tr>");
                    a++;//每循环一次a加1
                    if (a <= b)//a<b时滚动条变化
                    {
                        progressBar1.Value = a;
                    }
                    else { break; }
                }
                a = 0;
                ss.Append("</table>");
                sww.Write(ss);
                sww.Close();
        }

二、TreeView
Treeview用于显示按照树形结构进行组织的数据。
Expanded属性表明是否所有的子项都全部展开(包括子项的子项),为True表示全部展开。

     private void button1_Click(object sender, EventArgs e)
        {
            List<ChinaStates> list1 = new ChinaData().Select();//一次性查找出数据库中的所有数据
            TreeNode tn = new TreeNode("中国");
            tn.Tag = "0001";//记录这个节点的编号
            treeView1.Nodes.Add(tn);
            TreeViewBind(tn, list1);//调用函数

        }
        //递归调用自身
        private static void TreeViewBind(TreeNode tn, List<ChinaStates> list)
        {
            foreach (ChinaStates c in list)
            {
                if (c.ParentAreaCode == tn.Tag.ToString())
                {
                    TreeNode tnn = new TreeNode(c.AreaName);
                    tnn.Tag = c.AreaCode;
                    tn.Nodes.Add(tnn);
                    TreeViewBind(tnn, list);
                }
            }
        }
时间: 2024-10-13 22:31:34

数据导出和TreeView的相关文章

winform(数据导出、TreeView的使用)

DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定:    List<xxx> list = new List<xxx>();      dataGridView1.DataSource = list;      //设置不自动生成列,此属性在属性面板中没有      dataGridView1.AutoGenerateColumns = false;      //取消加载默认选中第一行      dataGridView1

发送邮件以及数据导出

1.发送邮件 首先引用using System.Net;和using System.Net.Mail;两个命名空间 1 void Button1_Click(object sender, EventArgs e) 2 { 3 //1.创建发送邮件的客户端对象 4 SmtpClient smtp = new SmtpClient("smtp.sina.cn");//smtp.sina.cn为新浪的SMTP 5 6 //4.创建MailAddress对象,分别构建成发送者和接收者 7 Ma

C#将dataGridView中显示的数据导出到Excel(超实用版)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop; using Microsoft.Office.Interop.Excel; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; public class ExprotT

Spire.Office for .NET 提供制图,制表,电子邮件,条形码以及数据导出的功能

Spire.Office for .NET是e-iceblue公司推出的一款.NET控件包.它包含所有该公司发布的.NET的控件.通过Spire.Office for .NET,开发人员可以轻松的操作商业中最流行格式的文件,主要包括Word, Excel, PDF,XML和HTML.除了强大的文件操作组件,Spire.Office for .NET 还提供制图,制表,电子邮件,条形码以及数据导出的功能. Spire.Office for .NET 包含以下产品: Spire.Doc for .N

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; /// <summary> /// Excel操作类 /// </summary> /// Microsoft Excel 11.0 Obj

Java通过POI技术操作Excel(3)----数据导出

在之前的博客中,总结了Excel模板生成和Excel数据录入,然后剩最后一个模块,数据库中数据读取,在之前的基础上我们来看这一模块,应该已经非常容易了,接下来简单的介绍一下: 这里我们仍然以jsp+servlet为例,对SqlServer2005数据库进行操作,如下都是基本步骤: 1.连接数据库:2.根据sql语句获取数据库中值:3.将值进行导出操作: 首先,我们来记性数据库的连接,这个相信接触过java的人都不会陌生,我就不赘述了 1 public class DataBase { 2 pri

yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension? 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 先概括下我们接下来要说的大致内容: 数据列表页面导出excel数据, 1.可以根据GridView的filter进行搜索数据并导出 2.可以自行扩展数据导出的时间直接导出数据 //先来看controller层,接收GridView参数并做拼接处理 php c

mysql数据导出权限问题

mysql数据导出的方法有非常多,比如mysqldump, mysql -e 'sql' > file, 这些都能够非常方便的导出数据,但是在使用普通用户导出数据的时候,出现了问题. 1 select * into outfile "file_path" from my_table 上面的语句也是mysql导出数据的一种方式,在使用普通用户运行语句时.出现了一下错误: 1 ERROR 1045 (28000): Access denied for user 'my_user'@'