excel导出

第一种导出

 

     private void ExportExcel(DataTable exceldt)
        {
            string FileName = "";
            FileName = "投诉建议" + DateTime.Now.ToString("MMddHHmm");
            string bname = GetClientBrowserVersions().ToLower();
            if (bname.Contains("firefox"))
            {
            }
            else if (bname.Contains("ie"))
            {
                FileName = HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
            }
            else
            {
                FileName = HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
            }

            HttpResponse resp;
            resp = Page.Response;
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName + ".xls");
            string colHeaders = "", ls_item = "";
            DataRow[] myRow = exceldt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
            int cl = exceldt.Columns.Count;
            for (int i = 0; i < 5; i++)
            {
                if (i == 0)
                {
                    colHeaders += "姓名\t";
                }
                else if (i == 1)
                {
                    colHeaders += "域账号\t";
                }
                else if (i == 2)
                {
                    colHeaders += "部门\t";
                }
                else if (i == 3)
                {
                    colHeaders += "录入时间\t";
                }
                else if (i == 4)
                {
                    colHeaders += "建议内容\n";
                }
            }
            resp.Write(colHeaders);
            //向HTTP输出流中写入取得的数据信息 
            //逐行处理数据  
            foreach (DataRow row in myRow)
            {
                //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据   
                for (int i = 0; i < 5; i++)
                {
                    if (i == 0)
                    {
                        ls_item += row["name"] + "\t";
                    }
                    else if (i == 1)
                    {
                        ls_item += row["account"] + "\t";
                    }
                    else if (i == 2)
                    {
                        ls_item += row["department"] + "\t";
                    }
                    else if (i == 3)
                    {
                        ls_item += row["add_time"] + "\t";
                    }
                    else if (i == 4)
                    {
                        ls_item += Utils.DropHTML(row["suggestion"].ToString()) + "\n";
                    }
                }
                resp.Write(ls_item);
                ls_item = "";
            }
            resp.End();
        }

 第二种方法

  public static bool ExportExcelWithAspose(DataTable dt, string path)
        {
            bool succeed = false;
            if (dt != null)
            {
                try
                {
                    Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
                    Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[0];
                    //为单元格添加样式      
                    Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()];
                    //设置居中  
                    style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
                    //设置背景颜色  
                    style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
                    style.Pattern = BackgroundType.Solid;
                    style.Font.IsBold = true;
                    int rowIndex = 0;
                    int colIndex = 0;
                    int colCount = dt.Columns.Count;
                    int rowCount = dt.Rows.Count;
                    //列名的处理  
                    Aspose.Cells.Style cellstyle = new Aspose.Cells.Style();
                    cellstyle.Font.IsBold = true;
                    cellstyle.Font.Name = "宋体";
                    for (int i = 0; i < colCount; i++)
                    {
                        cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Columns[i].ColumnName);
                        cellSheet.Cells[rowIndex, colIndex].SetStyle(cellstyle);
                        colIndex++;
                    }
                    rowIndex++;
                    for (int i = 0; i < rowCount; i++)
                    {
                        colIndex = 0;
                        for (int j = 0; j < colCount; j++)
                        {
                            cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Rows[i][j].ToString());
                            colIndex++;
                        }
                        rowIndex++;
                    }
                    cellSheet.AutoFitColumns();
                    path = Path.GetFullPath(path);
                    workbook.Save(path);
                    succeed = true;
                }
                catch (Exception ex)
                {
                    succeed = false;
                }
            }
            return succeed;
        }

 

posted @ 2015-07-09 16:01  Coding_Yong  阅读(286)  评论(0编辑  收藏  举报