| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Threading;namespace HOZProject{    public partial class UControl_Log : UserControl    {        public UControl_Log()        {            InitializeComponent();        }        private void btnClose_Click(object sender, EventArgs e)        {            Form fParent = this.ParentForm;            fParent.Close();        }        public void ShowProcessLogInfo(string[] strLog)        {            DataTable dt = new DataTable();            dt.Columns.Add("HoleName");            dt.Columns.Add("Time");            dt.Columns.Add("Message");            dt.Columns.Add("State");            foreach (string strItem in strLog)            {                string[] Nt = strItem.Split('_');                DataRow dr = dt.NewRow();                dr[0] = Nt[0];                dr[1] = Nt[1];                dr[2] = Nt[2];                dr[3] = Nt[3];                dt.Rows.Add(dr);            }            dgvLog.DataSource = dt;            lblLogCount.Text = dt.Rows.Count.ToString()+"条";        }        private void dgvLog_SelectionChanged(object sender, EventArgs e)        {            dgvLog.ClearSelection();        }        #region 关闭按钮 鼠标操作事件        private void pbClose_MouseEnter(object sender, EventArgs e)        {            pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_2_;        }        private void pbClose_MouseLeave(object sender, EventArgs e)        {            pbClose.BackgroundImage = global::HOZProject.Properties.Resources.exit_2_;        }        #endregion        private void btnExport_Click(object sender, EventArgs e)        {            ExportDataToExcel(this.dgvLog);        }        public void ExportDataToExcel(DataGridView myDGV)        {            string path = "";            SaveFileDialog saveDialog = new SaveFileDialog();            saveDialog.Title = "导出表格";            saveDialog.Filter = "Excel|*.xls";            saveDialog.ShowDialog();            path = saveDialog.FileName;            if (path.IndexOf(":") < 0) return; //判断是否点击取消            try            {                Thread.Sleep(1000);                StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("gb2312"));                StringBuilder sb = new StringBuilder();                //写入标题                for (int k = 0; k < myDGV.Columns.Count; k++)                {                    if (myDGV.Columns[k].Visible)//导出可见的标题                    {                        //"\t"就等于键盘上的Tab,加个"\t"的意思是: 填充完后进入下一个单元格.                        sb.Append(myDGV.Columns[k].HeaderText.ToString().Trim() + "\t");                    }                }                sb.Append(Environment.NewLine);//换行                                               //写入每行数值                for (int i = 0; i < myDGV.Rows.Count; i++)                {                    System.Windows.Forms.Application.DoEvents();                    for (int j = 0; j < myDGV.Columns.Count; j++)                    {                        if (myDGV.Columns[j].Visible)//导出可见的单元格                        {                            //注意单元格有一定的字节数量限制,如果超出,就会出现两个单元格的内容是一模一样的.                            //具体限制是多少字节,没有作深入研究.                            sb.Append(myDGV.Rows[i].Cells[j].Value.ToString().Trim() + "\t");                        }                    }                    sb.Append(Environment.NewLine); //换行                }                sw.Write(sb.ToString());                sw.Flush();                sw.Close();                MessageBox.Show("导出成功", "", MessageBoxButtons.OK);            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }    }}
 |