Formatuj komórkę tabeli HTML, aby Excel formatował jako tekst?
Tworzę tabelę HTML, która zostanie otwarta jako arkusz kalkulacyjny w Excelu. Jakiego tagu HTML lub stylu CSS mogę użyć, aby "powiedzieć" Excelowi, aby wyświetlić zawartość komórki jako tekst?
6 answers
Możesz zastosować formatowanie do komórek dla liczb, tekstu, dat itp.
Zobacz moją poprzednią odpowiedź na to: HTML do Excela: jak powiedzieć Excel traktować kolumny jako liczby?
(adjusted snippet)
Jeśli dodasz klasę CSS do swojej strony:
.num {
mso-number-format:General;
}
.text{
mso-number-format:"\@";/*force text*/
}
Czy to działa?
<td class="num">34</td>
<td class="num">17.0</td>
<td class="text">067</td>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:23
Jest jeden problem z użyciem tego rozwiązania (styl css z formatem liczb). W Excelu pojawia się błąd "numer zapisany jako tekst", który w niektórych przypadkach może być niewygodny. Aby uniknąć tego problemu, można użyć znaku spacji zerowej szerokości () na początku pola.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-27 15:00:39
Nie mam wystarczająco rep, aby komentować lub głosować, ale odpowiedź Raposo działa bardzo dobrze dla mnie. Nasz system importuje raporty SSRS i uruchamia je w trybie lokalnym. Przechowuje zapytanie (- a) zestawu danych w bazie danych i pobiera je w czasie wykonywania. Jednak w przypadku eksportu programu Excel po prostu uruchamia dane wynikowe zapytania do obiektu DataGrid i zapisuje je bezpośrednio do strumienia jako HTML, ustawiając rozszerzenie na .xls. Umieszczenie rozwiązania Raposo w zapytaniu zbioru danych raportu:
SELECT someColumn = '​' + someColumn
FROM, etc.
I usunięcie go w wyrażeniu pola SSRS:
=Replace(Fields!someColumn.Value, "​", "")
To jedyna rzecz, którą znalazłem, która działa. Dzięki!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-31 17:37:15
Znalazłem pięć rozwiązań tego problemu:
Sformatuj pole jako tekst zgodnie z opisem scunliffe. Ma to problem Zielonego trójkąta, jak stwierdził Raposo.
Stosować zgodnie z opisem Raposo. Ma to problem, że wartość tak naprawdę nie jest liczbą. Może to być problem, jeśli dane są pobierane do jakiegoś systemu w celu przetworzenia.
-
Dodaj TD jako
= " 067 " . To ma ten sam problem co #2. -
Dodaj TD jako
= text(067,"000"). Ma to również ten sam problem co #2. Użyj klasy CSS .text3 {MSO-number-format: "000";} i dodaj tę klasę DO TD. Jest to moje preferowane rozwiązanie, ale ma problem z wymaganiem wielu klas, jeśli masz liczby o różnych długościach. Jeśli piszesz nagłówek, a następnie powtarzasz swoje dane, musisz dodać wszystkie możliwe klasy, zanim dowiesz się, która z nich będzie Ci potrzebna. Ale ma to tę zaletę, że tekst jest naprawdę liczbą i nie ma Zielonego trójkąta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 13:00:50
Super rozwiązanie! Zrobiłem to jak poniżej
HttpContext.Current.Response.Write("<style> .txt " + "\r\n" + " {mso-style-parent:style0;mso-number-format:\"" + @"\@" + "\"" + ";} " + "\r\n" + "</style>");
HttpContext.Current.Response.Write("<Td class='txt'>​");
HttpContext.Current.Response.Write(Coltext);
HttpContext.Current.Response.Write("</Td>");
And it works fine for me
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-27 15:00:03
Możesz również rozwiązać problem dodając spację bez łamania:
przed wartością elementu {[1] }.
Przykład:
<td> 0:12:12.185</td>
zamiast:
<td>0:12:12.185</td>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-11 11:44:56