• 从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();

                }

            }

        }

    }

  • 相关阅读:
    boost::asio在VS2008下的编译错误
    Java集合框架——接口
    ACM POJ 3981 字符串替换(简单题)
    ACM HDU 1042 N!(高精度计算阶乘)
    OneTwoThree (Uva)
    ACM POJ 3979 分数加减法(水题)
    ACM HDU 4004 The Frog's Games(2011ACM大连赛区第四题)
    Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
    ACM HDU 4002 Find the maximum(2011年大连赛区网络赛第二题)
    ACM HDU 4001 To Miss Our Children Time (2011ACM大连赛区网络赛)
  • 原文地址:https://www.cnblogs.com/pengdage110/p/4081804.html
Copyright © 2020-2023  润新知