通过PHP从动态表数据导出到CSV

时间:2013-11-22 07:24:57

标签: javascript php csv

假设我在php页面中有一个动态表....有没有办法可以通过PHP将动态表格中的内容导出到CSV文件(和文本文件[如果可能])...... / p>

这里我从表中获取数据并在警告框中显示。但我想将它保存在一个文件中。用php。 这是我的代码:

<html>
    <head>
    <script>
        function GetCellValues()
        {
            var str = '';
            var rows = document.getElementsByTagName('tr');
            var table=document.getElementById("project");
            for (var i=0;i<table.rows[0].cells.length;i++)
            {
                if (i > 2 )
                {
                    str = str + table.rows[0].cells[3].innerHTML.replace(", ");
                }
                else
                {
                    str = str + (table.rows[0].cells[i].innerHTML) + ', ' ;
                }
            }
        for (var c = 1 ; c < rows.length ; c++)
        {
            str += '\n' + "0" + c + ', ';
            var row = rows[c];
            var inputs = row.getElementsByTagName('input');                
            for (var k = 0 ; k < inputs.length ; k++)
            if (k > 1)
            {
                str += inputs[k].value.replace(", ");
            }
            else 
            {
                str += inputs[k].value + ', ';
            }
        }   
        document.getElementById('hiden').value = str;
        alert(document.getElementById('hiden').value);
    }
    </script>       
    </head>
    <body>
    <form>
        <br>
        <h1><u>PROJECT</u> :</h1>
        <br>
            <input type = "hidden" id = "hiden" name = "hiden" value = "">
            <input type = "button" name = "submit" onclick = "GetCellValues()" Value = "SAVE">          
        <br>
    </form>
    <?php
        $handle = fopen("data.csv", "w");
        $hide = $_REQUEST['hide'];
        fwrite($handle,$hide);
        $file = file('data.csv');
        $lines = count($file);

        echo'<table id = "project" border = "1" cellpadding="2" cellspacing="0"
        style = "width: 60%; margin-left: auto; margin-right: auto; border-color: brown; background-color:silver;">';
        echo'<tr cellpadding="100">
            <th width="15%">Sl.No.</th>
            <th width="15%">Project Name</th>
            <th width="15%">ChangeDate</th>
            <th width="15%">Changed By</th>
        </tr>';
        for ($i=1; $i<$lines; $i++) 
        {
            $part = explode(',', $file[$i]);
            echo'<tr>
                <td align= "center" width="5%">'.$part[0].'</td>
                <td align= "center" width="25%"><input type="text" value='.$part[1].'></td>
                <td align= "center" width="25%"><input type="text" value='.$part[2].'></td>
                <td align= "center" width="25%"><input type="text" value='.$part[3].'></td> 
            </tr>';
        }
        echo'</table>'; 
    ?>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用内置的PHP5函数 fputcsv

这是一个示例代码

$result = mysqli_query($con, 'SELECT * FROM table_name');
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

$fp = fopen('file.csv', 'w');

foreach ($row as $val) {
    fputcsv($fp, $val);
}

fclose($fp);

它将为写入file.csv的每一行返回逗号分隔的字符串: