مهسا
3 سال پیش توسط مهسا مطرح شد
2 پاسخ

js export cells in excell

سلام وقت بخیر . کد زیر یک جدول و یک دکمه export excell داره. یه خط هم هست که یه آرایه خالیه var wsdata = [[ ]]; .
کدای من دوقسمت داره من میخوام محتویات جدولو داخل اون آرایه نمایش بده. یعنی اون از جایی که tbl خط 116 تعریف کردم تا انتهای دوتا حلقه باید 129 تو این قسمت var wsdata = [[ ]]; گنجانده بشه که دقیقا من نمیدونم الان چطوری اینکار انجام بشه که اطلاعاتم تو فایل اکسل نمایش بده


<html lang="fa" dir="rtl" xmlns="http://www.w3.org/1999/html" >
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta charset="utf-8">
    <title></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">

    <script type="text/javascript" src="js/jquery.js"></script>
    <script lang="javascript" src="js/FileSaver.min.js"></script>
    <script lang="javascript" src="js/xlsx.full.min.js"></script>

</head>
<body>

<style>
    table,td,tr,th{
        border: 3px solid deeppink;
        width: 100px;
        height: 40px;
        text-align: center;
        background-color:papayawhip;
    }
</style>

<br>
<br>

<br>
<br>
<div class="container">

        <button  ID="3" type="button" class="btn btn-primary btn-lg btn-block"  onclick=" ExportToExcel()"
                 style="width: 400px; background-color: deeppink; font-size:20px;"> Export excel </button>
        <br>
        <br>

    <br>
    <table id="informationtb" align="center" class="table table-bordered" style=" border: 3px solid deeppink;">
        <thead>
        <tr>
            <th scope="col">ردیف</th>
            <th scope="col">کد ملی</th>
            <th scope="col">نام</th>
            <th scope="col">نام خانوادگی</th>
            <th scope="col">جنسیت</th>
            <th scope="col">شماره تماس</th>
        </tr>
        </thead>
        <tbody>
        <tr id="tr1">
            <td id="1">1</td>
            <td id="2">001</td>
            <td id="5">علی</td>
            <td id="4">رضایی</td>
            <td id="6">
                <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault1">
                <label class="form-check-label" for="flexRadioDefault1">
                    زن
                </label>

                <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault2" checked>
                <label class="form-check-label" for="flexRadioDefault2">
                    مرد
                </label>
            </td>
            <td id="7">09120000000</td>
        </tr>
        <tr id="tr2">
            <td id="8">2</td>
            <td id="9">002</td>
            <td id="10">فاطمه</td>
            <td id="11">احمدی</td>
            <td id="12">
                <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault3">
                <label class="form-check-label" for="flexRadioDefault1">
                    زن
                </label>

                <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault4" checked>
                <label class="form-check-label" for="flexRadioDefault2">
                    مرد
                </label>
            </td>
            <td id="13">09121111111</td>
        </tr>
        <tr id="tr3">
            <td id="14">3</td>
            <td id="15">003</td>
            <td id="16">محمد</td>
            <td id="17">رضایی</td>
            <td id="200">

                    <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault5">
                    <label class="form-check-label" for="flexRadioDefault1">
                        زن
                    </label>

                    <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault6" checked>
                    <label class="form-check-label" for="flexRadioDefault2">
                        مرد
                    </label>

            </td>
            <td id="18">09123333333</td>
        </tr>

        </tbody>
    </table>

</div>

<script>

    var tbl = document.getElementById("informationtb");
    var arr = [];

    for (var i = 0; i < tbl.rows.length; i++) {
        var row = tbl.rows.item(i);

        for (var j = 0; j < row.cells.length; j++) {

            var col = row.cells.item(j);

                arr.push(col.innerText);
        }

    }

    console.log(arr);

    function ExportToExcel() {

        var wb = XLSX.utils.book_new();
        wb.Props = {
            Title: "SheetJS Tutorial",
            Subject: "Test",
            Author: "Red Stapler",
            CreatedDate: new Date(2017, 12, 19)
        };

        wb.SheetNames.push("Test Sheet");

        var ws_data = [['ردیف', 'کدملی', 'نام', 'نام خانوادگی']];
        var ws = XLSX.utils.aoa_to_sheet(ws_data);
        wb.Sheets["Test Sheet"] = ws;
        var wbout = XLSX.write(wb, {bookType: 'xlsx', type: 'binary'});

        function s2ab(s) {
            var buf = new ArrayBuffer(s.length);
            var view = new Uint8Array(buf);
            for (var p = 0; p < s.length; p++) view[p] = s.charCodeAt(p) & 0xFF;
            return buf;

        }

        $("#3").click(function () {
            saveAs (new Blob([s2ab(wbout)], {type: "application/octet-stream"}), 'test.xlsx');

        });

    }

</script>
</body>
</html>

</body></html>


ثبت پرسش جدید
محمدحسن فرهادی
تخصص : علاقه مند به کد نویسی
@farhadi 3 سال پیش مطرح شد
1

@pariageravand
سلام منظورتون از دونه به دونه بگیره چیه؟
شما مگه نمیخواید از جدولتون یه فایل اکسل اکسپورت بگیرید؟


مهسا
@mahsa 3 سال پیش آپدیت شد
0

@farhadi سلام. من این تمرینو خودم تا یه جاهایی پیش بردم. الان مشکل دیگه ای دارم و سوالو کدامو ویرایش کردم. لطف میکنید نگاه کنید ببینید مشکلش چیه؟ دقت کنید که دوتا فایل js و یه فایل jquery هم داخل پروژم گذاشتم که آدرسش تو قسمت head که اگه خواستید خودتون تست کنید فایلاشو حتما دانلود کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام