Предоставление пользовательского имени файла не работает в table2excel jquery?

я использовал код jquery для экспорта данных таблицы в файл excel, получил код из здесь

но предоставление имени файла custome не работает, оно принимает случайное имя файла.
как предоставить пользовательское имя файла из кода.

<script>
$(function() {
        $("button").click(function(){
        $("#example").table2excel({
                exclude: ".noExl",
        name: "Employee"
        }); 
         });
});
</script>

4 ответов


на name переменная в этом плагине относится к имени рабочего листа, а не к имени файла Excel.

Если вы хотите изменить имя файла, вам придется немного взломать код плагина или просто использовать другой плагин или кусок кода, который соответствует вашим потребностям, например этот (где вы можете поместить имя файла в postfix переменной).


1.Открыть с помощью jQuery.table2excel.js

2.Найти function getFileName(settings)

3.Измените его на

function getFileName(settings) {
        return ( settings.filename ? settings.filename : settings.name ) +
               ( settings.fileext ? settings.fileext : ".xls" );
}

настройки.имя является переменной из пользовательских сценариев js при вызове jquery2excel В моем примере это выглядит так:

$(".generateXLS").click(function(){
    var idOfTable = $(this).attr("data-rel");
    var tableName = $(this).attr("data-table-name");
    $("#tableN"+idOfTable).table2excel({
        name: tableName
    }); 
});

вы можете взломать table2excel jquery, чтобы дать настроенное имя для загрузки следующим образом:

от вашего js:

<script>
$(function() {
        $("button").click(function(){
        $("#example").table2excel({
                exclude: ".noExl",
        name: "Employee.txt" //This name will be passed for download
        }); 
         });
});
</script>

затем измените getFileName(e.настройки) вызовите table2excel.js назвать следующим образом:

if (typeof msie !== "undefined" && msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
            {
                if (typeof Blob !== "undefined") {
                    //use blobs if we can
                    fullTemplate = [fullTemplate];
                    //convert to array
                    var blob1 = new Blob(fullTemplate, { type: "text/html" });
                    window.navigator.msSaveBlob(blob1, name ); // Changed Here
                } else {
                    //otherwise use the iframe and save
                    //requires a blank iframe on page called txtArea1
                    txtArea1.document.open("text/html", "replace");
                    txtArea1.document.write(e.format(fullTemplate, e.ctx));
                    txtArea1.document.close();
                    txtArea1.focus();
                    sa = txtArea1.document.execCommand("SaveAs", true, name ); // Changed Here
                }

            } else {
                link = e.uri + e.base64(e.format(fullTemplate, e.ctx));
                a = document.createElement("a");
                a.download = name;  // Changed Here
                a.href = link;

                document.body.appendChild(a);

                a.click();

                document.body.removeChild(a);
            }

вам не нужно редактировать или добавлять что-либо table2excel плагин включает параметр для имени файла. Итак, теперь у вас есть два параметра, первый из которых имя its для имени рабочего листа и другого параметра имя файла его выделенный для имени файла excel вы можете проверить код ниже .

$("#example").table2excel({
                exclude: ".noExl",
                name: "Employee",
                filename : "EmployeeFileName",
});

для получения дополнительной информации вы можете посмотреть в С помощью jQuery.table2excel.js у него есть кодовая строка, которая все объясняет.

 function getFileName(settings) {
        return ( settings.filename ? settings.filename : "table2excel") + ".xlsx";
    }