c#widowform導出數據模塊編寫

一、實現效果



二、實現流程:

在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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章