c#widowform导出数据模块编写

4 篇文章 0 订阅
1 篇文章 0 订阅

一、实现效果



二、实现流程:

在c#widowform项目的引用那里添加第三方文件Aspose.Cells.dll(文章最后会附上下载地址),添加listview控件,添加两个button控件,最下面添加textBox控件。

1、Aspose.Cells.dll添加:


右键引用->添加应用Aspose.Cells.dll。

2、添加listview控件:


设置listview的属性,Columns选项添加自己的项目名称,如编号、时间、姓名、班级。

再修改listview的view属性为:Details。

三、代码实现:

1、导出文件函数实现:

public void ReportToExcel(ListView list, List<int> ColumnWidth, string ReportTitleName)
        {
            //获取用户选择的excel文件名称
            string path;
            SaveFileDialog savefile = new SaveFileDialog();
            savefile.Filter = "Excel files(*.xls)|*.xls";
            if (savefile.ShowDialog() == DialogResult.OK)
            {
                //获取保存路径
                path = savefile.FileName;
                Workbook wb = new Workbook();
                Worksheet ws = wb.Worksheets[0];
                Cells cell = ws.Cells;
                //定义并获取导出的数据源
                string[,] _ReportDt = new string[list.Items.Count, list.Columns.Count];
                for (int i = 0; i < list.Items.Count; i++)
                {
                    for (int j = 0; j < list.Columns.Count; j++)
                    {
                        _ReportDt[i, j] = list.Items[i].SubItems[j].Text.ToString();
                    }
                }
                //合并第一行单元格
                Range range = cell.CreateRange(0, 0, 1, list.Columns.Count);
                range.Merge();
                cell["A1"].PutValue(ReportTitleName); //标题

                //设置行高
                cell.SetRowHeight(0, 20);

                //设置字体样式
                Style style1 = wb.Styles[wb.Styles.Add()];
                style1.HorizontalAlignment = TextAlignmentType.Center;//文字居中
                style1.Font.Name = "宋体";
                style1.Font.IsBold = true;//设置粗体
                style1.Font.Size = 12;//设置字体大小

                Style style2 = wb.Styles[wb.Styles.Add()];
                style2.HorizontalAlignment = TextAlignmentType.Center;
                style2.Font.Size = 10;

                //给单元格关联样式
                cell["A1"].SetStyle(style1); //报表名字 样式

                //设置Execl列名
                for (int i = 0; i < list.Columns.Count; i++)
                {
                    cell[1, i].PutValue(list.Columns[i].Text);
                    cell[1, i].SetStyle(style2);
                }

                //设置单元格内容
                int posStart = 2;
                for (int i = 0; i < list.Items.Count; i++)
                {
                    for (int j = 0; j < list.Columns.Count; j++)
                    {
                        cell[i + posStart, j].PutValue(_ReportDt[i, j].ToString());
                        cell[i + posStart, j].SetStyle(style2);
                    }
                }

                //设置列宽
                for (int i = 0; i < list.Columns.Count; i++)
                {
                    cell.SetColumnWidth(i, Convert.ToDouble(ColumnWidth[i].ToString()));
                }
                //保存excel表格
                wb.Save(path);
            }
        }

2、textBox1日志输出,显示文件是否输出成功
DataTime.Now.Tostring("HH:mm:ss")为当前时间函数

        public void output(string log)
        {
            //如果日志信息长度超过100行,则自动清空
            if (textBox1.GetLineFromCharIndex(textBox1.Text.Length) > 100)
                textBox1.Text = "";
            //添加日志
            textBox4.AppendText(DateTime.Now.ToString("HH:mm:ss  ") + log + "\r\n");
        }

3、“清空数据”button控件代码实现

        private void dataclean_Click(object sender, EventArgs e)
        {
            listView1.Items.Clear();//清空列表数据
        }

4、导出数据button控件代码实现

private void dataout_Click(object sender, EventArgs e)
        {
            List<int> list = new List<int>() { 5, 18, 10, 10, 10 };
            ReportToExcel(listView1, list, DateTime.Now.ToString("HH:mm:ss  "));
            output("表格数据导出完成");
        }



附上成形代码:本代码为可供学习的串口通信和数据导出的学习者参考学习,不足之处,欢迎指出

http://download.csdn.net/detail/kevin_iot/9377861


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值