• 后台数据导出为Excel


    数据导出的方法如下:

    一、下载office的类库:microsoft.office.interop.excel.zip

    根据电脑安装的office版本选择引入相应的类库,office2007选择12.0的版本,office2010选择14的版本

    二、设置该类库的嵌入互操作类型属性为false,如图

    三、调用该方法实现数据的导出

    主要代码如下:

     1 public static bool ExportExcel(System.Data.DataTable dt, string path)
     2 {
     3 bool succeed = false;
     4 if (dt != null)
     5 {
     6 Microsoft.Office.Interop.Excel.Application xlApp = null;
     7 try
     8 {
     9 xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
    10 }
    11 catch (Exception ex)
    12 {
    13 throw ex;
    14 }
    15 
    16 if (xlApp != null)
    17 {
    18 try
    19 {
    20 Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
    21 object oMissing = System.Reflection.Missing.Value;
    22 Microsoft.Office.Interop.Excel.Worksheet xlSheet = null;
    23 
    24 xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];
    25 xlSheet.Name = dt.TableName;
    26 
    27 int rowIndex = 1;
    28 int colIndex = 1;
    29 int colCount = dt.Columns.Count;
    30 int rowCount = dt.Rows.Count;
    31 
    32 //列名的处理
    33 for (int i = 0; i < colCount; i++)
    34 {
    35 xlSheet.Cells[rowIndex, colIndex] = dt.Columns[i].ColumnName;
    36 colIndex++;
    37 }
    38 //列名加粗显示
    39 
    40 //同时可以设置样式等
    41 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowIndex, colCount]).Font.Bold = true;
    42 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowCount + 1, colCount]).Font.Name = "Arial";
    43 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowCount + 1, colCount]).Font.Size = "10";
    44 rowIndex++;
    45 
    46 //数据内容逐行写入,当数据量大的时候建议采用异步回调方法;
    47 
    48 for (int i = 0; i < rowCount; i++)
    49 {
    50 colIndex = 1;
    51 for (int j = 0; j < colCount; j++)
    52 {
    53 xlSheet.Cells[rowIndex, colIndex] = dt.Rows[i][j].ToString();
    54 colIndex++;
    55 }
    56 rowIndex++;
    57 }
    58 xlSheet.Cells.EntireColumn.AutoFit();
    59 
    60 xlApp.DisplayAlerts = false;
    61 path = System.IO.Path.GetFullPath(path);
    62 xlBook.SaveCopyAs(path);
    63 xlBook.Close(false, null, null);
    64 xlApp.Workbooks.Close();
    65 Marshal.ReleaseComObject(xlSheet);
    66 Marshal.ReleaseComObject(xlBook);
    67 xlBook = null;
    68 succeed = true;
    69 }
    70 catch (Exception ex)
    71 {
    72 succeed = false;
    73 }
    74 finally
    75 {
    76 xlApp.Quit();
    77 Marshal.ReleaseComObject(xlApp);
    78 int generation = System.GC.GetGeneration(xlApp);
    79 xlApp = null;
    80 System.GC.Collect(generation);
    81 }
    82 }
    83 }
    84 return succeed;
    85 }

    office链接类库:http://files.cnblogs.com/files/weiweiboqi/microsoft.office.interop.excel.zip

    敲击键盘,创造价值
  • 相关阅读:
    Selenium(三)webdriver的API与定位元素
    代码验证和动手动脑
    课程作业01实验报告1,2,3
    动手动脑
    课程作业03实验报告
    课程作业02实验报告
    猜数字实验报告
    java各种问题总结和一些讨论
    java从命令行接受多个数字并求和
    java登陆界面实验报告
  • 原文地址:https://www.cnblogs.com/weiweiboqi/p/4516270.html
Copyright © 2020-2023  润新知