首页 > 学院 > 开发设计 > 正文

dataset数据导出到Excel

2019-11-14 14:07:28
字体:
来源:转载
供稿:网友

1、将数据写入HTTP输出流/这样子导出以后的数据全在一行中

public void CreateExcel(DataSet ds, string FileName)    {        HttPResponse resp;        resp = Page.Response;        resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");        resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);        string colHeaders = "", ls_item = "";        //定义表对象与行对象,同时用DataSet对其值进行初始化         DataTable dt = ds.Tables[0];        DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的        int i = 0;        int cl = dt.Columns.Count;        //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符         for (i = 0; i < cl; i++)        {            if (i == (cl - 1))//最后一列,加/n            {                colHeaders += dt.Columns[i].Caption.ToString() + "/n";            }            else            {                colHeaders += dt.Columns[i].Caption.ToString() + "/t";            }        }        resp.Write(colHeaders);        //向HTTP输出流中写入取得的数据信息         //逐行处理数据           foreach (DataRow row in myRow)        {            //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据                 for (i = 0; i < cl; i++)            {                if (i == (cl - 1))//最后一列,加/n                {                    ls_item += row[i].ToString() + "/n";                }                else                {                    ls_item += row[i].ToString() + "/t";                }            }            resp.Write(ls_item);            ls_item = "";        }        resp.End();    }

2、打开一个excel将数据逐行写入

需要添加两个com引用

Microsoft Office 15.0 Object Library

Microsoft Excel 15.0 Object Library

 

public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)    {        DataTable dataTable = dataSet.Tables[0];        int rowNumber = dataTable.Rows.Count;        int columnNumber = dataTable.Columns.Count;         if (rowNumber == 0)        {            //MessageBox.Show("没有任何数据可以导入到Excel文件!");            return false;         }        else        {            Microsoft.Office.Interop.Excel.application excel = new Microsoft.Office.Interop.Excel.Application();            excel.Application.Workbooks.Add(true);            excel.Visible = isShowExcle;//是否打开该Excel文件              for (int c = 0; c < rowNumber; c++)             {                 for (int j = 0; j < columnNumber; j++)                 {                     excel.Cells[c + 1, j + 1] = dataTable.Rows[c].ItemArray[j];                  }             }             return true;         }    }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表