HTML para o Excel: Como pode dizer Excel para tratar colunas como números?

votos
19

Eu preciso para alcançar o seguinte ao abrir um HTML em Excel (Response.contentType=application/vnd.ms-excel):

  • força Excel para considerar o conteúdo das células td como números
  • fazer o acima de modo que quaisquer fórmulas introduzidos pelo utilizador subsequentes trabalhar sobre estas células (quando a planilha é aberta)

Até agora eu era bem sucedido com a adição style=vnd.ms-excel.numberformat:0.00às células td em questão. O conteúdo das células são corretamente mostrado como números quando eu clique direito sobre eles no Excel, no entanto, as fórmulas não funcionam.

Se for bem sucedido, essa técnica seria muito útil porque qualquer relatório web Excel poderia ser utilizador melhorada com fórmulas apropriadas de acordo com requisitos personalizados. Desde já, obrigado.

Publicado 09/12/2008 em 23:26
fonte usuário
Em outras línguas...                            


6 respostas

votos
28

Se você adicionar uma classe CSS para sua página:

.num {
  mso-number-format:General;
}
.date {
  mso-number-format:"Short Date";
}

E tapa essas classes em seu TD, ele funciona?

<td class="num">34</td>
<td class="num">17.0</td>
<td class="date">12/17/2008</td> <!-- if you are playing with dates too -->

Update: opções de formatação adicionais de @ Aaron.

Respondeu 10/12/2008 em 00:06
fonte usuário

votos
16

Aqui está uma lista de formatos Excel: células Styling Excel com mso-number-format

Respondeu 22/07/2009 em 16:34
fonte usuário

votos
4

O melhor truque é zombar de uma planilha Excel com todas as cores / (condicional) formatos / fórmulas que você precisa.

Mantê-lo o mais simples possível, apenas as linhas mínimos nuas etc.

Em seguida, salve a planilha Excel "como XML Spreadsheet"

Então você tem um modelo para construir uma planilha via XML.

Eu geralmente limpar estilos no XML original salvo da pasta de trabalho Excel. Removendo duplicatas e renomeá-los.

Então é só uma questão de preencher com qualquer fonte de dados que você tem.

Eu não sei qual ambiente você está codificando, mas em VB.NET com LINQ e XML literais, esta é uma tarefa muito simples.

Respondeu 10/12/2008 em 00:04
fonte usuário

votos
2

Ele não funciona, por vezes, se você adicioná-lo usando um css classnesse caso tente usar em Styleao seu TD. Eu fiz isso para formatar uma coluna para um texto. como isso

 style="mso-number-format:\@;"

Para você, seria como

  mso-number-format:General
Respondeu 03/10/2012 em 14:17
fonte usuário

votos
1

Eu não poderia obter qualquer uma das respostas nesta página para trabalhar no Excel 2010. Acabei usando isso.

<td x:num>123</td>

Respondeu 22/07/2015 em 03:45
fonte usuário

votos
0

UPDATE: Você também precisa remover espaços sem quebras (nbsp 's) a partir de células de td contendo informações numéricas ou dinheiro para fazer fórmulas trabalhar sobre estas células no Excel. Portanto, o problema é resolvido.

Respondeu 10/12/2008 em 19:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more