Domanda

I esportare un DataTable per parola, quando passo davanti a un nome di file non sembra per ottenere il nome del file in Open / Save finestra di dialogo.

Ecco quello che sto facendo

public static void Convertword(DataTable dt, HttpResponse Response,string filename)
{
    try
    {
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".doc");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.word";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
        System.Web.UI.WebControls.GridView dg = new System.Web.UI.WebControls.GridView();
        dg.DataSource = dt;
        dg.DataBind();
        dg.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();
    }
    catch(Exception err)
    {
        throw err;
    }
}

Quando passo il nome del file "report(" + System.DateTime.Now.ToString("dd/MM/yyyy"); + ")" non ci vuole il valore come dd / MM / AAAA invece mostra il nome del file come dd_MM_YYYY

È stato utile?

Soluzione

alcune osservazioni circa il vostro codice:

  1. Si imposta il tipo di contenuto intestazione a un documento di parola, ma in realtà si sta inviando contenuti HTML per il rendering di una GridView
  2. dd/MM/YYYY non è un nome di file valido a causa del carattere /.
  3. Non è necessario un blocco try/catch se nella dichiarazione catch si sta solo facendo throw err
  4. Chiamata Response.End alla fine non è necessario.
  5. Usare sempre comunicato using quando si tratta di oggetti usa e getta, come ruscelli e lettori / scrittori per garantire che il metodo Dispose viene richiamato in tutti i casi.

Altri suggerimenti

Si dovrebbe usare un nome di file come

String.Format("report{0:ddMMyyyy}.doc", DateTime.Now);

Un nome di file non può avere "/".

Questo è molto probabilmente perché / non è un carattere valido per i nomi dei file. Il suo nome deve soddisfare determinati criteri, essere sicuri di non utilizzare uno dei

  

* . " / \ [ ] : ; | = ,

Se avete slash nel nome del file, presumo che questo avrebbe rotto l'URL del file e quindi le barre vengono sostituiti ad un certo punto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top