.net后台怎么实现点击下载按钮时让用户选择需要保存的路径,并将GridView里的数据下载到此路径? 30

.net后台怎么实现点击下载按钮时让用户选择需要保存的路径,并将GridView里的数据下载到此路径?求大神指点,要原代码,我用的是<asp:Button>,有用必赞,谢... .net后台怎么实现点击下载按钮时让用户选择需要保存的路径,并将GridView里的数据下载到此路径?
求大神指点,要原代码,我用的是<asp:Button>,有用必赞,谢谢
展开
 我来答
百度网友5456381
2014-07-22 · 超过126用户采纳过TA的回答
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:251万
展开全部
给你的C#的按钮代码
#region 导出数据
private void btnData_Click(object sender, EventArgs e)
{
if (dt != null)//判断数据集合
{
int rowsCount = dt.Rows.Count;
int colsCount = dt.Columns.Count;
if (rowsCount <= 0)
{
MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}

if (colsCount <= 0)
{
MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}

//行数不可以大于65536
if (rowsCount > 65536)
{
MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}

//列数不可以大于255
if (colsCount > 255)
{
MessageBox.Show("数据记录行数太多,不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}

SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "保存为表格文件";
DialogResult result = saveFileDialog.ShowDialog();
if (result == DialogResult.Cancel || result == DialogResult.No)
return;
//杨工建议替换
//if (saveFileDialog.FileName.IndexOf(":") < 0)
// return;

Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
string columnTitle = "";
try
{
//写入列标题
for (int i = 0; i < colsCount; i++)
{
if (i > 0)
{
columnTitle += "\t";
}
columnTitle += dt.Columns[i].ColumnName;
}
sw.WriteLine(columnTitle);

//写入列内容
for (int j = 0; j < rowsCount; j++)
{
string columnValue = "";
for (int k = 0; k < colsCount; k++)
{
if (k > 0)
{
columnValue += "\t";
}
if (dt.Rows[j][k] == null)
columnValue += "";
else
{
if (dt.Rows[j][k].GetType() == typeof(string) && dt.Rows[j][k].ToString().StartsWith("0"))
{
columnValue += "'" + dt.Rows[j][k].ToString();
}
else
columnValue += dt.Rows[j][k].ToString();
}
}
sw.WriteLine(columnValue);
}
sw.Close();
myStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
MessageBox.Show("数据导出成功,共导出" + dt.Rows.Count.ToString() + "条记录");
}
}
else
{
MessageBox.Show("没有数据可供导出 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
#endregion
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式