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

                }

            }

        }

    }

  • 相关阅读:
    Linux零碎知识
    Xshell连接不上Linux
    Python中获取当前时间 获取当前时间前几天的代码
    重新设置Linux文件共享密码..
    【Python】【解决】UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128)
    应该怎么理解 app = Flask(__name__)
    刚才在windows下发现拖拽不了文件了
    Hadoop点滴-何时使用hadoop fs、hadoop dfs与hdfs dfs命令
    Hadoop点滴-Hadoop分布式文件系统
    Hadoop点滴-初识MapReduce(2)
  • 原文地址:https://www.cnblogs.com/pengdage110/p/4081804.html
Copyright © 2011-2022 走看看