首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

啊亲们 Workbook 有关问题

2013-06-19 
求救啊!亲们 Workbook 问题今天做一个导出功能,excel.Save这个方法总会弹出“打开”“保存”“取消”三个按钮;可

求救啊!亲们 Workbook 问题
今天做一个导出功能,excel.Save这个方法总会弹出“打开”“保存”“取消”三个按钮;可是我折腾了半天都没有折腾出来,就是想点击导出按钮的时候能不能知道保存到我想要的路径里面,这折腾的我脸都绿了;也没有发现有 SaveAs方法。
        ///// <summary>
        ///// 导出Excel文件
         ///// </summary>
        ///// <param name="res"></param>
        ///// <param name="Datas">一个列表表示一个Sheet</param>
        public static void ExportExcel(HttpResponse res, List<DataTable> Datas)
        {
            Workbook excel = new Workbook();
            excel.Worksheets.Clear();
            for (int i = 0; i < Datas.Count; i++)
            {
                excel.Worksheets.Add(Datas[i].TableName);
                excel.Worksheets[Datas[i].TableName].Cells.ImportDataTable(Datas[i], true, 0, 0, true);
            }
            excel.Save(DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls", SaveType.OpenInExcel, FileFormatType.Default, res);

        }
[解决办法]


//方法

public class DataToExcel
    {
        public static void Export(string[] fileName, string[] title, string tableName, string sheetName, string strWhere, string sort)
        {
            string sql = "select ";
            if (fileName == null 
[解决办法]
 fileName.Length < 1)
            {
                sql += "* ";
            }
            else
            {
                foreach (string key in fileName)
                {
                    sql += key + ",";


                }
                sql = System.Text.RegularExpressions.Regex.Replace(sql, ",$", " ");
            }
            sql += "from " + tableName;
            if (!string.IsNullOrEmpty(strWhere))
            {
                sql += " where " + strWhere;
            }
            if (!string.IsNullOrEmpty(sort))
            {
                sql += " order by " + sort;
            }
            
            //获取需要导出的数据
            DataTable dt = DbHelperSQL.Query(sql).Tables[0];
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            NPOI.SS.UserModel.Sheet sheet = book.CreateSheet(sheetName);
            NPOI.SS.UserModel.Row row = sheet.CreateRow(0);

            //设置列名称和数据
            if (title == null 
[解决办法]
 title.Length < 1)
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    row.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
                }
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    NPOI.SS.UserModel.Row row2 = sheet.CreateRow(i + 1);
                    for (int j = 0; j < dt.Columns.Count; j++)
                        row2.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());


                }
            }
            else
            {
                for (int i = 0; i < title.Length; i++)
                {
                    row.CreateCell(i).SetCellValue(title[i].ToString());
                }
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    NPOI.SS.UserModel.Row row2 = sheet.CreateRow(i + 1);
                    for (int j = 0; j < fileName.Length; j++)
                        row2.CreateCell(j).SetCellValue(dt.Rows[i][fileName[j]].ToString());
                }
            }
            
            
            


            //写入到客户端   
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            book.Write(ms);
            HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=Export_" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls"));
            HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            book = null;
            ms.Close();
            ms.Dispose();   
        }

    }





//导出代码
    protected void But_Excel_Click(object sender, EventArgs e)
    {
        string[] fileName = { "ID","HtmlName","PageTitle","PageKey","PageDes","Title","Form","Image","ITitle","IAlt","Intor","Content","IsPass","IsTop","Sort","Click","AddTime" };
        string[] title = { "编号","Htm名","页面标题","页面关键字","页面描述","新闻标题","新闻来源","图片","图片Title","图片Alt","新闻简介","新闻详细介绍","审核","首页显示","排序","点击数","添加时间" };
        DataToExcel.Export(fileName, title, "TB_News", "安信动态列表_" + DateTime.Now.ToString("yyy-MM-dd"), getStrWhere(), getSort());


    }


[解决办法]
导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器
object missing = Type.Missing;
            Workbook excel = new Workbook();
            //
            excel.SaveAs("路径", missing, missing, missing, missing, missing
                    , Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing, missing);

[解决办法]
还没有发青呀!开个玩笑.. 把文件输出不就可以了么?

private void Export()
    {
        if (zhifaGUID != "")
        {
            string tempPath = OperateReport.ZhiFaExport(zhifaGUID);
            string ReportFilePath = "http://" + Request.Url.Host + Common.UpLoadDir + tempPath;
            Response.Redirect(ReportFilePath, false);
        }
        else
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('抱歉,导出错误!');window.self.close();</script>");
            return;
        }
    }

热点排行