zoukankan      html  css  js  c++  java
  • DevExpress- GridControl数据导出到EXCEL

    将DevExpress-GridControl数据导出到EXCEL,目前用过两种,一为利用GridControl函数操作,一为用流(IO)操作.区别在于前者可以将你在GridControl所见格式全部导入EXCEL,比如有时候我们在Bands里面拖拽出来的Title样式,后者最大优点在于速度很快,亲测10W条数据导出只需2秒左右;

       

    No.1:用GridControl函数导出数据到EXCEL,建议设置Options下OptionsPrint—AutoWidth=False,使导出后单元格宽度根据内容长度自动调整.

    SaveFileDialog fileDialog = new SaveFileDialog();

    fileDialog.Filter = "Excel文件¦*.xls;";

    fileDialog.FileName = this.Text + DateTime.Now.ToString("yyMMddHHmm");

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

    {

      gridControl1.ExportToXls(fileDialog.FileName);

      XtraMessageBox.Show("操作成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

    }

       

       

    No.2:用流将数据导入EXCEL

    #region 用流将数据导入到Excel中

                    public static void DataGridToExcel(DataTable dt, GridView dgv, string orderDateTime, string title)

                    {

                            SaveFileDialog saveFileDialog = new SaveFileDialog();

                            saveFileDialog.Filter = "Execl (*.xls)¦*.xls¦ Execl (*.xlsx)¦*.xlsx";

                            saveFileDialog.FilterIndex = 0;

                            saveFileDialog.RestoreDirectory = true;

                            saveFileDialog.CreatePrompt = true;

                            saveFileDialog.Title = "导出Excel文件到";

        DateTime now = SystemManage.GetTimeNow();

      saveFileDialog.FileName = title + orderDateTime;

        DialogResult dr = saveFileDialog.ShowDialog();

                            if (dr == DialogResult.Cancel)

                                    return;

                            Stream myStream;

        myStream = saveFileDialog.OpenFile();

                            string fileName = saveFileDialog.FileName;

                            if (fileName == "")

                            {

    XtraMessageBox.Show("请输入文件名!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                                    return;

                            }

                            StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));

                            string str = "";

                            try

                            {

                                    //写标题

                                    string stc = title + orderDateTime;

    sw.WriteLine(stc);

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

                                    {

                                            if (i == 0)

                                            {

                                                    str += "序号";

                                            }

                                            else

                                            {

                                                    if (dgv.Columns[i - 1].Visible == true)

                                                    {

                                                            str += " ";

                                                            str += dgv.Columns[i - 1].Caption;

                                                    }

    }

                                    }

    sw.WriteLine(str);

                                    int count = 0;

                                    //写内容

                                    for (int j = 0; j < dt.Rows.Count; j++)

                                    {

                                            count++;

                                            string tempStr = "";

                                            for (int k = 0; k < dt.Columns.Count + 1; k++)

                                            {

                                                    if (k == 0)

                                                    {

                                                            tempStr = count.ToString();

                                                    }

                                                    else

                                                    {

                                                            if (dgv.Columns[k - 1].Visible == true)

                                                            {

                                                                    tempStr += " ";

                                                                    tempStr += dt.Rows[j][k - 1].ToString().Trim();

    }

                                                    }

    }

                                            sw.WriteLine(tempStr);

    }

                                    sw.Close();

                                    sw.Dispose();

                                    myStream.Close();

                                    myStream.Dispose();

    XtraMessageBox.Show("操作成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                            }

                            catch (Exception e)

                            {

    XtraMessageBox.Show("操作失败!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                            }

                            finally

                            {

                                    sw.Close();

                                    myStream.Close();

    }

                    }

                   

    #endregion

       

    OK,调用就简单了:

    ClassName.DataGridToExcel(dt, gridView1, SystemManage.GetTimeNow().ToString("yyMMddHHmmss"), this.Text + "报表");

       

    源文档 <http://www.liaoyong.name/?p=202>

    版权声明:本博原创文章可以被转载,但是在未经本人许可前,不得用于任何商业用途或其他以盈利为目的的用途。如需转载,请在转载时声明作者、保留出处。本人保留对本文的一切权利。 作者:AllenRobin Blog:http://gisrsman.cnblogs.com
  • 相关阅读:
    ISO14443 Type A 和 Type B 的数据流
    return false vs stopPropagation(), preventDefault(),stopImmediatePropagation()
    jq mouse事件
    jq next nextAll nextUntil siblings的区别
    UITextView布局不是从0开始的问题
    App开发者需要更新此App以在此iOS版本上正常工作
    委托,深入浅出才是王道(二)
    委托,深入浅出才是王道(一)
    委托,深入浅出才是王道(三)
    设计模式学习日记二(持续更新)
  • 原文地址:https://www.cnblogs.com/GISRSMAN/p/4518994.html
Copyright © 2011-2022 走看看