Files
WebGIM/Projects/WebGIM/GIM_site/ExcelExportAllData.aspx.cs
T
Samuele E. Locatelli c2e40dd3dc inserita bozza export CSV
2015-03-18 11:54:37 +01:00

146 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
using GIM_data;
using System.Text;
using System.Data;
namespace GIM_site
{
public partial class ExcelExportAllData : System.Web.UI.Page
{
/// <summary>
/// evento dati associati a controllo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_DataBound(object sender, EventArgs e)
{
if (grView.Rows.Count > 0)
{
// aggiorno gli headers
foreach (TableCell cella in grView.HeaderRow.Cells)
{
try
{
cella.Text = traduci(cella.Text);
}
catch
{ }
}
}
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
return user_std.UtSn.Traduci(lemma.ToString());
}
/// <summary>
/// fix rendering tabelle standard in webform
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.
}
/// <summary>
/// Si occupa di rendere l'out HTML come excel file (mimetype)
/// </summary>
private void doExport()
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=WebGIM_AllData.xls");
Response.ContentType = "application/vnd.xls";
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
grView.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
/// <summary>
/// Si occupa di rendere l'out HTML come excel file (mimetype)
/// </summary>
private void doExportCsv()
{
var dataTable = TA_app.obj.taAllData.GetData();
StringBuilder builder = new StringBuilder();
List<string> columnNames = new List<string>();
List<string> rows = new List<string>();
foreach (DataColumn column in dataTable.Columns)
{
columnNames.Add(column.ColumnName);
}
builder.Append(string.Join(",", columnNames.ToArray())).Append("\n");
foreach (DataRow row in dataTable.Rows)
{
List<string> currentRow = new List<string>();
foreach (DataColumn column in dataTable.Columns)
{
object item = row[column];
currentRow.Add(item.ToString().Replace("\n", " ").Replace("\r", ""));
}
rows.Add(string.Join(memLayer.ML.confReadString("separatoreCsv"), currentRow.ToArray()));
}
builder.Append(string.Join("\n", rows.ToArray()));
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=WebGIM_AllData.csv");
Response.ContentType = "text/csv";
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(builder.ToString());
Response.End();
}
#region area protected
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (false)
{
aggiornamento();
doExport();
}
else
{
doExportCsv();
}
}
}
#endregion
public void aggiornamento()
{
grView.AllowPaging = false;
ods.DataBind();
grView.DataBind();
}
}
}