2022年5月19日 星期四

[Javascript] jquery.table2excel 對 texarea中資料的處理

jquery.table2excel 這個js套件可以將簡易的table轉出excel,最近使用時發現table中的textarea 元素轉出後在excel會是個元件,而不是在儲存格中的純文字,有點困擾所以看了一下source code, 

發現裡面有對 input這個元素做處理,如法泡製一下,正規表示式-抓取html中 textarea中的資料,另外因textarea會有換行的問題,所以再將換行符號取代為 <br />,不過如果沒有加上style的話,excel開啟後對<br />的解譯會新增一列,所以再加上mso-data-placement:same-cell;後便可保持在同一個儲存格上囉~


    function exclude_textareas(string) {

        var _patt = /(<textarea [^>]*>(.*[\n]*.*)<\/textarea>)/i;

        return string.replace(/<textarea [^>]*>.*[\n]*.*<\/textarea>/ig, function myFunction(x) {

            var res = _patt.exec(x);

            if (res !== null && res.length >= 2) {

                return res[2].replace('\n', '<br style="mso-data-placement:same-cell;" />');

            } else {

                return "";

            }

        });

    }


/<