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;
- }
- private void pbClose_MouseLeave(object sender, EventArgs e)
- {
- pbClose.BackgroundImage = global::HOZProject.Properties.Resources.Exit;
- }
- #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| *.xlsx;*.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);
- }
- }
- }
- }
|