2010-11-03 32 views
1

J'exporte une table HTML pour exceller en envoyant les données sous forme de chaîne de tableau HTML et en définissant les en-têtes de contenu:déterminer la longueur du contenu de la chaîne HTML

Dim html as String = "<table><tr><td>example<td></tr></table>" 

context.Response.Clear() 
context.Response.AddHeader("Content-Disposition", "attachment; filename=" & "exceldata-" & Now.ToString("yyyyMMddHHmmss") & ".xls") 
'context.Response.AddHeader("Content-Length", ????) 
context.Response.ContentType = "application/octet-stream" 
context.Response.Write(response) 
context.Response.End() 

est-il un moyen simple de régler le Content- longueur basée sur la taille de la chaîne html? Ou devrais-je simplement laisser le champ vide de toute façon ... serait agréable d'avoir la longueur de contenu idéal ...

Je renvoie cette aide d'un GenericHandler dans asp.net

Répondre

1

Cela semble trop facile, mais est ce n'est pas seulement égal à html.Length?

+0

Je suppose que si chaque caractère est un octet, cela aurait du sens? (J'espère que c'est si simple: D) – davidsleeps

+0

est-ce toujours le cas? – davidsleeps

+0

La réponse de John ci-dessous est meilleure, allez-y. – benr

1

Je ne l'ai pas utilisé ASP.NET, mais je suppose que la méthode Longueur() renvoie la longueur de la chaîne en caractères, pas d'octets, donc cela ne fonctionnera pas si votre serveur utilise UTF-8 ou Unicode pour servir les pages.

Comme indiqué dans une autre réponse, laissez simplement le serveur le remplir pour vous. Si vous y réfléchissez, vous n'avez pas à l'ajouter lorsque vous générez des pages HTML à partir d'ASP car le serveur Web le génère en fonction de la réponse du module ASP.