zoukankan      html  css  js  c++  java
  • 把gridview数据导出到Excel文件中

    1,#region 设置EXCEL格式
            /// <summary>
            /// 设置EXCEL自动格式
            /// </summary>
            /// <param name="sheet"></param>
            /// <param name="nRowIndex"></param>
            private static void SetWrap(Excel.Worksheet sheet, int nRowIndex)
            {
                for (int i = 1; i <= 4; i++)
                {
                    Excel.Range range = sheet.Cells[nRowIndex, i] as Excel.Range;
                    //垂直居上
                    range.VerticalAlignment = Excel.XlVAlign.xlVAlignTop;
                    //水平左对其
                    range.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
                    //自动换行
                    range.WrapText = true;
                }
            }
            #endregion

    2,#region 打印gridview数据
            /// <summary>
            /// 打印gridview数据
            /// </summary>
            /// <param name="grid"></param>
            /// <param name="fileName"></param>
            /// <param name="print"></param>
            /// <returns></returns>
            public static string ExportExcel(DataGridView grid, string fileName, bool print)
            {
                string strReturn = String.Empty;

                Excel.Application excelApp = null;
                Excel.Workbook workBook = null;
                Excel.Worksheet ws = null;
                Excel.Range range = null;
                Excel.Worksheet sheet = null;

                try
                {
                    //一行header,一行空行间隔, +2
                    int rowCount = grid.Rows.Count + 2;
                    //最后一列为隐藏列,不导出和打印
                    int colCount = grid.Columns.Count - 1;
                    string[,] arr = new string[rowCount, colCount];
                    for (int i = 0; i < rowCount; i++)
                    {
                        if (i == 0)
                        {
                            for (int j = 0; j < colCount; j++)
                            {
                                arr[i, j] = grid.Columns[j].HeaderText;
                            }
                        }
                        else if (i > 1)
                        {
                            for (int j = 0; j < colCount; j++)
                            {
                                arr[i, j] = grid.Rows[i - 2].Cells[j].Value.ToString();
                            }
                        }
                    }

                    excelApp = new Microsoft.Office.Interop.Excel.Application();
                    workBook = excelApp.Workbooks.Add(Missing.Value);
                    sheet = workBook.ActiveSheet as Excel.Worksheet;
                    ws = excelApp.Workbooks[1].Worksheets[1] as Excel.Worksheet;
                    range = ws.get_Range(ws.Cells[1, 1], ws.Cells[rowCount, colCount]);
                    range.Value2 = arr;

                    ws.get_Range(ws.Cells[1, 1], ws.Cells[1, colCount]).Font.Bold = true;

                    //列宽
                    excelApp.Columns.ColumnWidth = 19;
                    excelApp.Columns.VerticalAlignment = Excel.XlVAlign.xlVAlignTop;
                    excelApp.Columns.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                    excelApp.Columns.WrapText = true;
                    excelApp.Columns.Font.Size = 11;

                    //Excel.Range headRange = excelApp.Rows[1, 1] as Excel.Range;
                    //headRange.RowHeight = 28;
                    //headRange.Font.Name = "宋体";
                    //headRange.Font.Size = 12;
                    //headRange.Font.Bold = true;
                    //headRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

                    workBook.SaveAs(fileName, Missing.Value, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, ConflictOption.OverwriteChanges, null, null, null, null);
                    if (print)
                    {
                        excelApp.Visible = true;
                        //sheet.PrintPreview(Missing.Value);
                        excelApp.Dialogs[Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrint].Show(Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                    }
                }
                catch (Exception ex)
                {
                    strReturn = ex.Message;
                }
                finally
                {
                    workBook.Close(false, Missing.Value, Missing.Value);
                    excelApp.Quit();
                }
                return strReturn;
            }
            #endregion

           

  • 相关阅读:
    nyoj-68-三点顺序-计算几何
    zoj--1089--Lotto---DFS VS 暴力求解
    zoj----1090---The Circumference of the Circle---数学几何
    nyoj-阶乘0
    nyoj-回文字符串--动态规划
    nyoj-最长公共子序列---动态规划
    hdu-1285确定比赛名次---拓扑排序
    等式数量---hash算法
    学生学籍管理系统
    2020.2.9 解决Zabbix agent is not available&windows下安装zabbix-agent 主机部署监控
  • 原文地址:https://www.cnblogs.com/tangtang615/p/1407236.html
Copyright © 2011-2022 走看看