Doubt in table generation in excel file

Asked

Viewed 48 times

0

I have a Javascript function that generates the table of a page in an Excel spreadsheet. Follow the code below:

function montaExcel(){
    var tab_text = "<table><tr><td><img src='http://xxx.xxx.xxx.xxx/images/layout/logo.jpg'></img></td></tr><tr><td style='font-size: 20px'>"+$('#comboUnidades option:selected').text()+"</td><td style='font-size: 20px'>"+$('#txtData').val()+"</td></tr><tr><td></td></tr></table>";

    tab_text=tab_text+"<table border='2px'><tr bgcolor='#CCCCCC'>";
    var textRange; var j=0;
    tab = document.getElementById('tblAcompanhamentoDiario'); // id of table

    for(j = 0 ; j < tab.rows.length ; j++) 
    {     
        tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
        //tab_text=tab_text+"</tr>";
    }
    tab_text=tab_text+"</table>";

    tab_text=tab_text+"<table><tr><td></td></tr><tr><td colspan=8>"+$('#txtRodape').html()+"</td></tr></table>";

    tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
    // tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table
    tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE "); 

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
    {
        txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus(); 
        sa=txtArea1.document.execCommand("Save As",true,"Acompanhamento_Diario.xls");
    }  
    else                 //other browser not tested on IE 11
        sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  

    return (sa);
}

However, the images are overlapping with the cells, such as the logo.jpg (highlighted in bold in the code above).

How can I improve this? Any suggestions?

1 answer

0

I’m not sure, but I believe that if you put a width="size_da_foto" in the column of the photo, could solve your problem. But try to put in the HTML itself, without using CSS.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.