在asp.net中打开/保存文件对话框 [英] open/save file dialog box in asp.net

查看:66
本文介绍了在asp.net中打开/保存文件对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨............



我想将网格视图数据导出到excel。我没有问题,但只有问题是Excel文件存储在解决方案本身中的
。我想显示一个对话框,要求用户选择存储该excel文件的路径。



这是我的代码



protected void btnExport_Click(object sender,EventArgs e)

{

DataTable dt = new DataTable();

dt = Session [data] as DataTable;

string FolderPath ;



StreamWriter objSw;

//创建CSV文件

if(Directory.Exists(Server.MapPath) (〜/ Reports)))

{

FolderPath = Server.MapPath(〜/ Reports);



objSw = new StreamWriter(FolderPath +/ TrackRequest+ DateTime.Now.ToString(ddMMMyyyyHHmmss)+。csv);

}

else

{

FolderPath = Server.MapPath(〜/ Reports);



目录。 CreateDirectory(FolderPath);



objSw = new StreamWriter(FolderPath +/ TrackRequest+ DateTime.Now.ToString(ddMMMyyyyHHm mss)+。csv);

}



//从GridView1获取表格

DataTable objDt = dt; //((DataSet)gvPayDetail.DataSource).Tables[0];



//在GridView中获取列数

int NoOfColumn = objDt.Columns.Count;



//创建标题

for(int i = 0; i< NoOfColumn; i ++)

{

objSw.Write(objDt.Columns [i]);



//检查不是最后一栏

if(i< NoOfColumn - 1)

{

objSw.Write(,);

}

}

objSw.Write(objSw.NewLine);



//创建数据

foreach(objDt.Rows中的DataRow博士)

{

for(int i = 0; i< NoOfColumn; i ++)

{

objSw.Write(dr [i] .ToString());



if(i< NoOfColumn - 1)

{

objSw.Write(,);

}

}

objSw.Write(objSw.NewLine);

}

objSw.Close();

}

Hi ............

I want to Export grid view data to excel.I have no problem in this but only problem is
that Excel file is storing in Solution itself.I want to show a dialog box for asking user to select path to store that excel file.

here is my code

protected void btnExport_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = Session["data"] as DataTable;
string FolderPath;

StreamWriter objSw;
//Create CSV file
if (Directory.Exists(Server.MapPath("~/Reports")))
{
FolderPath = Server.MapPath("~/Reports");

objSw = new StreamWriter(FolderPath + "/TrackRequest" + DateTime.Now.ToString("ddMMMyyyyHHmmss") + ".csv");
}
else
{
FolderPath = Server.MapPath("~/Reports");

Directory.CreateDirectory(FolderPath);

objSw = new StreamWriter(FolderPath + "/TrackRequest" + DateTime.Now.ToString("ddMMMyyyyHHmmss") + ".csv");
}

//get table from GridView1
DataTable objDt = dt; //((DataSet)gvPayDetail.DataSource).Tables[0];

//Get No Of Column in GridView
int NoOfColumn = objDt.Columns.Count;

//Create Header
for (int i = 0; i < NoOfColumn; i++)
{
objSw.Write(objDt.Columns[i]);

//check not last column
if (i < NoOfColumn - 1)
{
objSw.Write(",");
}
}
objSw.Write(objSw.NewLine);

//Create Data
foreach (DataRow dr in objDt.Rows)
{
for (int i = 0; i < NoOfColumn; i++)
{
objSw.Write(dr[i].ToString());

if (i < NoOfColumn - 1)
{
objSw.Write(",");
}
}
objSw.Write(objSw.NewLine);
}
objSw.Close();
}

推荐答案

使用数据表来实现功能

Use datatable to excel function
private void DataTableToCSVFile(string filename, DataTable dt)
   {
       HttpContext context = HttpContext.Current;
       context.Response.Clear();
       DataTable dtExcel = dt;
       foreach (DataColumn column in dtExcel.Columns)
       {
           context.Response.Write(column.ColumnName + ",");
       }
       context.Response.Write(Environment.NewLine);
       foreach (DataRow row in dtExcel.Rows)
       {
           for (int i = 0; i < dtExcel.Columns.Count; i++)
           {
               context.Response.Write(row[i].ToString().Replace(",", string.Empty) + ",");
           }
           context.Response.Write(Environment.NewLine);
       }
       context.Response.ContentType = "text/csv";
       context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "_" + DateTime.Now + ".csv");
       context.Response.End();
   }


包括:

Include this :
using System.Windows.Forms;
OpenFileDialog openFileDialog = new OpenFileDialog();


这篇关于在asp.net中打开/保存文件对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆