• 单表头,多表头导出excel


    一、单表头

     1  #region 导出
     2             if (this.dgvInfo.Rows.Count > 0)
     3             {
     4                 SaveFileDialog saveFileDialog = new SaveFileDialog();
     5                 saveFileDialog.DefaultExt = "xls";
     6                 saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls";
     7                 saveFileDialog.FilterIndex = 0;
     8                 saveFileDialog.FileName = "单据明细";
     9                 saveFileDialog.RestoreDirectory = true;
    10                 saveFileDialog.CreatePrompt = true;
    11                 saveFileDialog.Title = "导出到EXCEL";
    12                 saveFileDialog.ShowDialog();
    13                 if (saveFileDialog.FileName == "")
    14                     return;
    15                 Stream myStream;
    16                 myStream = saveFileDialog.OpenFile();
    17                 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
    18                 string str = "";
    19                 try
    20                 {
    21                     for (int i = 0; i < this.dgvInfo.ColumnCount; i++)
    22                     {
    23                         if (i > 0)
    24                         {
    25                             str += "	";
    26                         }
    27                         str += dgvInfo.Columns[i].HeaderText;
    28                     }
    29                     sw.WriteLine(str);
    30                     for (int j = 0; j < dgvInfo.Rows.Count; j++)
    31                     {
    32                         string tempStr = "";
    33                         for (int k = 0; k < dgvInfo.Columns.Count; k++)
    34                         {
    35                             if (k > 0)
    36                             {
    37                                 tempStr += "	";
    38                             }
    39                             if (dgvInfo.Rows[j].Cells[k].Value == null)
    40                             {
    41                                 dgvInfo.Rows[j].Cells[k].Value = "";
    42                             }
    43                             tempStr += dgvInfo.Rows[j].Cells[k].Value.ToString();
    44                         }
    45                         sw.WriteLine(tempStr);
    46                     }
    47                     sw.Close();
    48                     myStream.Close();
    49                 }
    50                 catch (Exception ex)
    51                 {
    52                     MessageBox.Show(ex.ToString());
    53                 }
    54                 finally
    55                 {
    56                     sw.Close();
    57                     myStream.Close();
    58                 }
    59             }
    60             #endregion

    二、表多头

     1             try
     2             {
     3                 if (treedgv.Rows.Count > 0)
     4                 {
     5                     string sFile = System.Windows.Forms.Application.StartupPath;
     6 
     7                     //Missing 在System.Reflection命名空间下。
     8                     //string sFileSave = sFile + "\" + DateTime.Now.ToString("yyyyMMddHHmmss") + "一天一业绩.xls";
     9 
    10                     SaveFileDialog saveFileDialog = new SaveFileDialog();
    11                     saveFileDialog.DefaultExt = "xls";
    12                     saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls";
    13                     saveFileDialog.FilterIndex = 0;
    14                     saveFileDialog.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "支付方式";
    15                     saveFileDialog.RestoreDirectory = true;
    16                     saveFileDialog.CreatePrompt = true;
    17                     saveFileDialog.Title = "导出到EXCEL";
    18                     saveFileDialog.ShowDialog();
    19                     if (saveFileDialog.FileName == "")
    20                         return;
    21 
    22                     //需要添加 Microsoft.Office.Interop.Excel引用 
    23                     Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
    24 
    25                     app.Visible = false;
    26                     app.UserControl = true;
    27                     Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
    28                     Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(sFile + "\支付方式.xls"); //加载模板
    29                     Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
    30                     Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
    31                     if (worksheet == null)
    32                         return;  //工作薄中没有工作表.
    33 
    34                     ////写入数据,Excel索引从1开始。
    35 
    36                     for (int i = 1; i <= treedgv.Rows.Count; i++)
    37                     {
    38                         int row_ = 3 + i;  //Excel模板上表头和标题行占了2行,根据实际模板需要修改;
    39                         int dt_row = i - 1; //dataTable的行是从0开始的。 
    40                         //worksheet.Cells[row_, 1] = i.ToString();
    41                         for (int j = 1; j <= treedgv.Columns.Count; j++)
    42                         {
    43                             if (treedgv.Rows[0].Cells["Column" + j].Value.ToString() != "")
    44                             {
    45                                 worksheet.Cells[row_, j] = treedgv.Rows[i-1].Cells["Column" + j].Value.ToString();
    46                             }
    47                         }
    48 
    49                     }
    50 
    51 
    52                     workbook.SaveAs(saveFileDialog.FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
    53 
    54 
    55                     workbook.Close(null, null, null);
    56                     workbooks.Close();
    57                     worksheet = null;
    58                     app.Quit();
    59                     app = null;
    60                 }
    61             }
    62             catch (Exception)
    63             {
    64 
    65                 MessageBox.Show("导出失败!", "异常");
    66             }
  • 相关阅读:
    ORA-02290: 违反检查约束条件
    上传图片
    dart视频教程
    'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    .net js有数据 但是跳转不到操作页
    LAYUI layedit 富文本框内容的取值
    LAYUI select 下拉框得高度
    防止页面刷新
    Hadoop常用命令
    spark常用命令
  • 原文地址:https://www.cnblogs.com/wangfei1511/p/3811934.html
Copyright © 2020-2023  润新知