当前位置:首页 > JavaScript

js实现表格在线制作

2026-04-04 17:18:51JavaScript

使用原生JavaScript实现表格在线制作

通过DOM操作创建可编辑表格结构

const table = document.createElement('table');
table.id = 'editableTable';
table.style.border = '1px solid black';
document.body.appendChild(table);

添加表头生成功能

function addHeader() {
  const thead = table.createTHead();
  const row = thead.insertRow();
  const headers = ['姓名', '年龄', '操作'];

  headers.forEach(text => {
    const th = document.createElement('th');
    th.textContent = text;
    row.appendChild(th);
  });
}

实现动态添加行功能

function addRow() {
  const tbody = table.querySelector('tbody') || table.createTBody();
  const row = tbody.insertRow();

  ['name', 'age'].forEach(type => {
    const cell = row.insertCell();
    const input = document.createElement('input');
    input.type = type === 'age' ? 'number' : 'text';
    cell.appendChild(input);
  });

  const actionCell = row.insertCell();
  const delBtn = document.createElement('button');
  delBtn.textContent = '删除';
  delBtn.onclick = () => tbody.removeChild(row);
  actionCell.appendChild(delBtn);
}

使用HTML5的contenteditable属性实现即时编辑

创建可编辑表格结构

<table id="editableTable" border="1">
  <thead>
    <tr>
      <th contenteditable="true">列1</th>
      <th contenteditable="true">列2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
    </tr>
  </tbody>
</table>
<button onclick="addEditableRow()">添加行</button>

实现动态行添加

function addEditableRow() {
  const tbody = document.querySelector('#editableTable tbody');
  const newRow = document.createElement('tr');

  for(let i=0; i<2; i++) {
    const td = document.createElement('td');
    td.contentEditable = true;
    newRow.appendChild(td);
  }

  tbody.appendChild(newRow);
}

使用第三方库Handsontable实现专业表格

引入Handsontable库

<link href="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.js"></script>

<div id="hot"></div>

初始化表格实例

const container = document.getElementById('hot');
const hot = new Handsontable(container, {
  data: [['', '']],
  colHeaders: true,
  rowHeaders: true,
  contextMenu: true,
  height: 300,
  width: 600,
  licenseKey: 'non-commercial-and-evaluation'
});

实现表格数据导出功能

添加导出为CSV功能

function exportToCSV() {
  let csv = [];
  const rows = document.querySelectorAll('#editableTable tr');

  rows.forEach(row => {
    const rowData = [];
    row.querySelectorAll('th, td').forEach(cell => {
      rowData.push(cell.textContent);
    });
    csv.push(rowData.join(','));
  });

  const csvContent = csv.join('\n');
  const blob = new Blob([csvContent], {type: 'text/csv'});
  const url = URL.createObjectURL(blob);
  const link = document.createElement('a');
  link.href = url;
  link.download = 'table_data.csv';
  link.click();
}

实现表格样式定制

添加CSS样式控制

js实现表格在线制作

#editableTable {
  border-collapse: collapse;
  width: 100%;
}

#editableTable th, #editableTable td {
  border: 1px solid #ddd;
  padding: 8px;
  min-width: 100px;
}

#editableTable th {
  background-color: #f2f2f2;
  text-align: left;
}

#editableTable tr:nth-child(even) {
  background-color: #f9f9f9;
}

标签: 在线表格
分享给朋友:

相关文章

vue表格实现教学

vue表格实现教学

基础表格实现 使用 Vue 的 v-for 指令渲染数组数据到表格中。 <template> <table> <thead> <…

css表格制作表格

css表格制作表格

CSS 表格制作方法 基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<td>(单元格)和<th>(表头)标签: &l…

vue动态表格实现

vue动态表格实现

Vue动态表格实现方法 使用v-for指令渲染动态数据 通过v-for指令可以循环遍历数组数据生成表格行,数据变化时表格自动更新。示例代码: <template> <table…

vue实现合并表格

vue实现合并表格

vue实现合并表格的方法 使用Vue实现表格合并功能可以通过多种方式完成,常见方法包括自定义渲染、利用第三方库或手动处理数据。以下是几种典型实现方案: 使用Element UI的table组件实现合…

vue实现sku表格

vue实现sku表格

Vue实现SKU表格的方法 SKU(Stock Keeping Unit)表格常用于电商平台展示商品的多属性组合,例如颜色、尺寸等。以下是基于Vue的实现方法: 数据结构设计 SKU的核心是属性组合…

Vue在线表格实现

Vue在线表格实现

Vue在线表格实现方案 使用Element UI的el-table组件 Element UI提供了功能强大的表格组件el-table,支持排序、筛选、分页等常见功能。安装Element UI后可直接使…