You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术求助:将Google表格食谱数据同步至HTML页面并分类展示

问题描述

我是HTML新手,正在制作妈妈食谱网站。已通过Google表单收集食材等信息并同步至Google表格,需提取表格数据到HTML页面,按「甜(sladké)」「咸(slané)」分类展示(表格已标记分类),表格最后一列「postup」为烹饪步骤。现有HTML代码如下:

主页代码

<!DOCTYPE html>
<html lang="cz">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kuchařka ztracených receptů</title>
</head>
<style>
    button {
    color: rgb(210, 210, 210);
    background-color: rgb(53, 104, 139);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 15pt;
    border: none;
    border-radius: 10px;
    padding: 10px 20px;
    margin: 15px; /*15px mezera z top, right, bottom, left*/
}

h1 {
    color: rgb(21, 42, 55);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 30pt;
}

.button-container {
    text-align: center; /*centrování tlačítek*/
    margin-top: 20px; /* místo nad tlačítky */
}

</style>
<body style="background-color:rgb(179, 199, 213);">
    <h1>Kuchařka ztracených receptů</h1>
    <div class="button-container">
        <a href="sladke.html"><button>Sladké</button></a>
        <a href="slane.html"><button>Slané</button></a>
    </div>
</body>
</html>

甜食谱页面代码

<!DOCTYPE html>
<html lang="cz">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sladké</title>

</head>

<style>
    button {
    color: rgb(210, 210, 210);
    background-color: rgb(42, 84, 111);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 10pt;
    border: none;
    border-radius: 10px;
    padding: 10px 20px;
   
}

h3 {
    color: rgb(21, 42, 55);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 20pt;
}


</style>

<body>
    <h3>Sladké recepty</h3>
    <a href="poseruse.html"><button>Hlavní stránka</button></a>
</body>
</html>

咸食谱页面代码

<!DOCTYPE html>
<html lang="cz">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Slané</title>
</head>

<style>
button {
    color: rgb(210, 210, 210);
    background-color: rgb(42, 84, 111);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 10pt;
    border: none;
    border-radius: 10px;
    padding: 10px 20px;
  
}

h3 {
    color: rgb(21, 42, 55);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 20pt;
}

</style>

<body>
    <h3>Slané recepty</h3>
    <a href="poseruse.html"><button>Hlavní stránka</button></a>

</body>
</html>
解决方案

针对你的需求,推荐使用Google Sheets的CSV导出功能结合原生JavaScript实现数据加载,无需后端服务,适合新手操作:

1. 配置Google表格权限

  • 打开你的Google表格,点击右上角「分享」,设置权限为知道链接的任何人都可查看,确保数据能被公开访问

2. 获取CSV导出链接

  • 在表格中,点击「文件」→「下载」→「逗号分隔值(.csv)」
  • 复制浏览器地址栏的链接,简化为:https://docs.google.com/spreadsheets/d/1MP70bVV6hTeq-D5Jcc24_vrKXR695RZUrtsn_g-IHmE/export?format=csv(已替换你的表格ID)

3. 修改甜食谱页面(sladke.html)

以下是集成数据加载功能的完整代码,保持了你原有的样式风格:

<!DOCTYPE html>
<html lang="cz">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sladké</title>
    <style>
        button {
            color: rgb(210, 210, 210);
            background-color: rgb(42, 84, 111);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            font-size: 10pt;
            border: none;
            border-radius: 10px;
            padding: 10px 20px;
        }

        h3 {
            color: rgb(21, 42, 55);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            font-size: 20pt;
        }

        .recipe-card {
            background-color: #fff;
            border-radius: 8px;
            padding: 15px;
            margin: 15px 0;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }

        .recipe-card h4 {
            color: rgb(53, 104, 139);
            margin-top: 0;
        }

        .recipe-card .ingredients {
            margin: 10px 0;
            color: #333;
        }

        .recipe-card .steps {
            margin: 10px 0;
            color: #333;
            line-height: 1.5;
        }
    </style>
</head>
<body style="background-color:rgb(179, 199, 213); padding: 0 20px;">
    <h3>Sladké recepty</h3>
    <a href="poseruse.html"><button>Hlavní stránka</button></a>
    <div id="recipes-container"></div>

    <script>
        // 替换为你的CSV导出链接
        const csvUrl = 'https://docs.google.com/spreadsheets/d/1MP70bVV6hTeq-D5Jcc24_vrKXR695RZUrtsn_g-IHmE/export?format=csv';

        // 解析CSV数据
        function parseCSV(csv) {
            const lines = csv.split('\n').filter(line => line.trim() !== '');
            const headers = lines[0].split(',').map(header => header.trim());
            return lines.slice(1).map(line => {
                const values = line.split(',').map(val => val.trim());
                return headers.reduce((obj, header, index) => {
                    obj[header] = values[index];
                    return obj;
                }, {});
            });
        }

        // 加载并展示甜食谱
        fetch(csvUrl)
            .then(response => response.text())
            .then(csv => {
                const recipes = parseCSV(csv);
                const sweetRecipes = recipes.filter(recipe => recipe['kategorie'] === 'sladké');
                const container = document.getElementById('recipes-container');
                
                sweetRecipes.forEach(recipe => {
                    const card = document.createElement('div');
                    card.className = 'recipe-card';
                    card.innerHTML = `
                        <h4>${recipe['název']}</h4>
                        <div class="ingredients"><strong>Suroviny:</strong> ${recipe['suroviny']}</div>
                        <div class="steps"><strong>Postup:</strong> ${recipe['postup']}</div>
                    `;
                    container.appendChild(card);
                });
            })
            .catch(error => console.error('Chyba při načítání receptů:', error));
    </script>
</body>
</html>

4. 修改咸食谱页面(slane.html)

只需将上述代码中的筛选条件改为:

const saltyRecipes = recipes.filter(recipe => recipe['kategorie'] === 'slané');

并调整标题相关内容即可,其余代码保持一致。


内容的提问来源于stack exchange,提问作者Klára Szkawranioková

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:24:59