Problema de formato de número de tabla después de exportar formato de Excel con JS

Haga una tabla para exportar datos recientes a las necesidades de Excel, desde Internet para encontrar dos códigos correspondientes, utilizo para usar JS para exportar datos a la tabla de Excel en (Método 2) en el segundo, simplemente comience a sentirse bien Bien, encontré algo mal más tarde. Si los datos son 000002, se convertirán en 2 después de transferirlos a Excel.
Descripción: Algunos datos en mi formulario comienzan con 000.
Los datos en mi formulario comienzan con 000
Uno de los datos es 001, 002, 003
El dato uno es 001, 002, 003
y luego analiza el motivo. Usa JS para exportar los datos de la tabla a Excel. Si el libro td son números puros, estará en formato Excel. Tipo de número, así que creo que 001 se convertirá en 1.
Así que busqué la solución correspondiente en Baidu en Internet y cambié el tipo a String antes de importarlo a Excel.
Este es el caso en Baidu, agregue un style = 'mso-number-format: "@"' a td, como este

<td style='mso-number-format:"\@"'><label class="text">000001</label></td>

Me preguntaba si podría hacer el procesamiento en el método público de llamar a export Excel y agregarlo a él. Descubrí
que el método público de llamar a export Excel se puede modificar en lotes (pegue directamente el código modificado)

var tableToExcel = (function() {
    
    
  var uri = 'data:application/vnd.ms-excel;base64,',
      template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
      base64 = function(s) {
    
     return window.btoa(unescape(encodeURIComponent(s))) ;},
      format = function(s, c) {
    
     return s.replace(/{(\w+)}/g, function(m, p) {
    
     return c[p]; }); };
  
  return function(table, name, filename) {
    
    
	if (!table.nodeType) table = document.getElementById(table);
	
	//console打印出table.innerHTML出则是table的页面代码
	//根据正则表达式,把style='mso-number-format:"\@"' 塞入td中,将数据转成String
	table.innerHTML = table.innerHTML.replace(/<td/g, "<td STYLE='MSO-NUMBER-FORMAT:\\@'"); 
	
    var ctx = {
    
     worksheet: name || 'Worksheet', table: table.innerHTML };//此时的innerHTML数据可以自己自定义 比如json转化 只要值要数据符合即可
    var link = document.createElement("A");
    link.href = uri + base64(format(template, ctx));
    link.download = filename;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  };
});

Después de la modificación: Los datos actuales son correctos y se obtiene el efecto deseado,
Los datos actuales son correctos, obtén el efecto que deseas
revisando el código fuente de Excel se encuentra que todos son tipos str.
Verifique el código fuente de Excel y descubra que ha sido tratado como tipo str

¡Grabe, resuma, comparta! ¡El aprendizaje siempre está en camino!

Supongo que te gusta

Origin blog.csdn.net/qq_35340913/article/details/102607744
Recomendado
Clasificación