zoukankan      html  css  js  c++  java
  • 从DataGridView导出Excel

    从DataGridView导出Excel的两种情况,不多说,直接记录代码(新建类,直接引用传入参数)。

    using System; 

    using System.Collections.Generic; 

    using System.Linq; 

    using System.Text; 

    using System.Windows.Forms; 

    using System.IO; 

    using System.Data;

    namespace cnblogs

    {

        public static class LoadExcel

        {

          //从DataGridView中导出Excel,若s为null则直接导出DataGridView中的内容

            public static void DataToExcel(DataGridView m_DataView,string s)

            {

                SaveFileDialog kk = new SaveFileDialog();

                kk.Title = "保存EXECL文件";

                kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";

                kk.FilterIndex = 1;

                if (kk.ShowDialog() == DialogResult.OK)

                {

                    string FileName = kk.FileName;// +".xls";

                    if (File.Exists(FileName))

                        File.Delete(FileName);

                    FileStream objFileStream;

                    StreamWriter objStreamWriter;

                    string strLine = "";

                    objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);

                    objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);

                    objStreamWriter.WriteLine(s); //统计结果信息

                    for (int i = 0; i < m_DataView.Columns.Count; i++)

                    {

                        if (m_DataView.Columns[i].Visible == true)

                        {

                            strLine = strLine + m_DataView.Columns[i].HeaderText.ToString() + Convert.ToChar(9);

                        }

                    }

                    objStreamWriter.WriteLine(strLine);

                    strLine = "";

                    for (int i = 0; i < m_DataView.Rows.Count; i++)

                    {

                        if (m_DataView.Columns[0].Visible == true)

                        {

                            if (m_DataView.Rows[i].Cells[0].Value == null)

                                strLine = strLine + " " + Convert.ToChar(9);

                            else

                                strLine = strLine + m_DataView.Rows[i].Cells[0].Value.ToString() + Convert.ToChar(9);

                        }

                        for (int j = 1; j < m_DataView.Columns.Count; j++)

                        {

                            if (m_DataView.Columns[j].Visible == true)

                            {

                                if (m_DataView.Rows[i].Cells[j].Value == null)

                                    strLine = strLine + " " + Convert.ToChar(9);

                                else

                                {

                                    string rowstr = "";

                                    rowstr = m_DataView.Rows[i].Cells[j].Value.ToString();

                                    if (rowstr.IndexOf(" ") > 0)

                                        rowstr = rowstr.Replace(" ", " ");

                                    if (rowstr.IndexOf(" ") > 0)

                                        rowstr = rowstr.Replace(" ", " ");

                                    strLine = strLine + rowstr + Convert.ToChar(9);

                                }

                            }

                        }

                        objStreamWriter.WriteLine(strLine);

                        strLine = "";

                    }

                  

                    objStreamWriter.Close();

                    objFileStream.Close();

                    MessageBox.Show("导出成功!");

                }

              

            }

            //用DataGridView绑定的DataTable为参数,导出Excel  

            public static void DataToExcel(DataTable m_DataTable)

            {

                SaveFileDialog kk = new SaveFileDialog();

                kk.Title = "保存EXECL文件";

                kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";

                kk.FilterIndex = 1;

                if (kk.ShowDialog() == DialogResult.OK)

                {

                    string FileName = kk.FileName + ".xls";

                    if (File.Exists(FileName))

                        File.Delete(FileName);

                    FileStream objFileStream;

                    StreamWriter objStreamWriter;

                    string strLine = "";

                    objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);

                    objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);

                    for (int i = 0; i < m_DataTable.Columns.Count; i++)

                    {

                        strLine = strLine + m_DataTable.Columns[i].Caption.ToString() + Convert.ToChar(9);

                    }

                    objStreamWriter.WriteLine(strLine);

                    strLine = "";

                    for (int i = 0; i < m_DataTable.Rows.Count; i++)

                    {

                        for (int j = 0; j < m_DataTable.Columns.Count; j++)

                        {

                            if (m_DataTable.Rows[i].ItemArray[j] == null)

                                strLine = strLine + " " + Convert.ToChar(9);

                            else

                            {

                                string rowstr = "";

                                rowstr = m_DataTable.Rows[i].ItemArray[j].ToString();

                                if (rowstr.IndexOf(" ") > 0)

                                    rowstr = rowstr.Replace(" ", " ");

                                if (rowstr.IndexOf(" ") > 0)

                                    rowstr = rowstr.Replace(" ", " ");

                                strLine = strLine + rowstr + Convert.ToChar(9);

                            }

                        }

                        objStreamWriter.WriteLine(strLine);

                        strLine = "";

                    }

                    objStreamWriter.Close();

                    objFileStream.Close();

                }

            }

        }

    }

  • 相关阅读:
    C语言中的字符串处理库函数介绍与实现
    尾声,毕业设计答辩
    《算法图解》第六章笔记_广度优先搜索
    《算法图解》第五章笔记与课后练习_散列函数与散列表
    《算法图解》第四章笔记与课后练习_快速排序算法
    《算法图解》第三章笔记与课后练习_递归
    c# 执行javascript 脚本
    HttpWebRequest出错 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF
    秒转换成时分秒
    SQL2008中Merge的用法
  • 原文地址:https://www.cnblogs.com/pengdage110/p/4081804.html
Copyright © 2011-2022 走看看