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

                }

            }

        }

    }

  • 相关阅读:
    Codeforces 1255B Fridge Lockers
    Codeforces 1255A Changing Volume
    Codeforces 1255A Changing Volume
    leetcode 112. 路径总和
    leetcode 129. 求根到叶子节点数字之和
    leetcode 404. 左叶子之和
    leetcode 104. 二叉树的最大深度
    leetcode 235. 二叉搜索树的最近公共祖先
    450. Delete Node in a BST
    树的c++实现--建立一棵树
  • 原文地址:https://www.cnblogs.com/pengdage110/p/4081804.html
Copyright © 2011-2022 走看看