[英]Export DataTable to Excel and save to local directory
I have below functions that take Data Table and convert to excel and prompt user to download the excel. 我具有以下将数据表转换为excel并提示用户下载excel的函数。
May I know how can I change the function so that it is save to my local directory instead of download? 我可以知道如何更改功能,以便将其保存到本地目录而不是下载吗?
public static void ExportDataTableToExcel(DataTable table, string name)
{
HttpContext context = HttpContext.Current;
context.Response.Clear();
string attachment = "attachment; filename=" + name + ".xls";
context.Response.ClearContent();
context.Response.AddHeader("content-disposition", attachment);
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.ContentEncoding = System.Text.Encoding.Unicode;
context.Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
string tab = "";
foreach (DataColumn dc in table.Columns)
{
context.Response.Write(tab + dc.ColumnName);
tab = "\t";
}
context.Response.Write("\n");
int i;
foreach (DataRow dr in table.Rows)
{
tab = "";
for (i = 0; i < table.Columns.Count; i++)
{
context.Response.Write(tab + "=\"" + dr[i].ToString() + "\"");
tab = "\t";
}
context.Response.Write("\n");
}
context.Response.End();
}
Found and implemented the function 建立并实施功能
public static bool SaveDataTableToExcel(DataTable table, string savePath)
{
//open file
StreamWriter wr = new StreamWriter(savePath, false, Encoding.Unicode);
try
{
for (int i = 0; i < table.Columns.Count; i++)
{
wr.Write(table.Columns[i].ToString().ToUpper() + "\t");
}
wr.WriteLine();
//write rows to excel file
for (int i = 0; i < (table.Rows.Count); i++)
{
for (int j = 0; j < table.Columns.Count; j++)
{
if (table.Rows[i][j] != null)
{
wr.Write("=\"" + Convert.ToString(table.Rows[i][j]) + "\"" + "\t");
}
else
{
wr.Write("\t");
}
}
//go to next line
wr.WriteLine();
}
//close file
wr.Close();
}
catch (Exception ex)
{
LogError(ex);
return false;
}
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.