我如何知道 jexcell javascript 库中哪个单元格被突出显示?
How do I know which cell is highlighted in jexcell javascript library?
我想合并标有jexcel的单元格。我不知道该怎么做。更具体地说,我想将单元格合并为动态状态并将它们写入 MySQL 中的合并单元格。怎么做
<div id="example"></div>
<script>
var data = [
['', 'Ford', 'Tesla', 'Toyota', 'Honda'],
['2017', 10, 11, 12, 13],
['2018', 20, 11, 14, 13],
['2019', 30, 15, 12, 13]
];
var container = document.getElementById('example');
var hot = new Handsontable(container, {
data: data,
rowHeaders: true,
colHeaders: true,
filters: true,
dropdownMenu: true,
contextMenu: true
});
</script>
你的问题不清楚,但我会尽力回答。
如果我忽略您提供的示例并专注于 jExcel,我们可以使用 setMerge
合并单元格,为此我们需要知道:
- 第一个单元格的地址
- 选中的行数
- 所选列的数量
我们可以从中提取此信息:
$("#spreadsheet").jexcel("getSelectedRows", true);
$("#spreadsheet").jexcel("getSelectedColumns", true);
从理论上讲,仅此一项就可以工作,但是 jExcel 在失去焦点时(即当用户单击按钮时)取消选择单元格,这就是为什么我使用 workarround 将单元格选择存储在对象中,然后使用该对象来合并单元格。
HTML:
<div id="spreadsheet"></div>
<br>
<input id="myB" type="button" value="Merge Selected" />
Javascript:
var mySlection = {};
var options = {
minDimensions: [10, 10],
onselection: storeSelection
};
$(document).ready(function() {
var mySpreadsheet = $("#spreadsheet").jexcel(options);
$("#myB").click(function() {
//Merge Cells using the stored selection
$("#spreadsheet").jexcel("setMerge", mySlection.firstcell, mySlection.colspan, mySlection.rowspan)
/*
you may now store the following values to your MySQL
mySlection.firstcell
mySlection.colspan
mySlection.rowspan
*/
});
});
function storeSelection() {
var sRows = $("#spreadsheet").jexcel("getSelectedRows", true);
var sCols = $("#spreadsheet").jexcel("getSelectedColumns", true);
mySlection.firstcell = [sCols[0], sRows[0]];
mySlection.colspan = sCols.length;
mySlection.rowspan = sRows.length;
}
要求:jQuery,jExcel 和 jSuites v3
Here's a Working Example at CodePen
我想合并标有jexcel的单元格。我不知道该怎么做。更具体地说,我想将单元格合并为动态状态并将它们写入 MySQL 中的合并单元格。怎么做
<div id="example"></div>
<script>
var data = [
['', 'Ford', 'Tesla', 'Toyota', 'Honda'],
['2017', 10, 11, 12, 13],
['2018', 20, 11, 14, 13],
['2019', 30, 15, 12, 13]
];
var container = document.getElementById('example');
var hot = new Handsontable(container, {
data: data,
rowHeaders: true,
colHeaders: true,
filters: true,
dropdownMenu: true,
contextMenu: true
});
</script>
你的问题不清楚,但我会尽力回答。
如果我忽略您提供的示例并专注于 jExcel,我们可以使用 setMerge
合并单元格,为此我们需要知道:
- 第一个单元格的地址
- 选中的行数
- 所选列的数量
我们可以从中提取此信息:
$("#spreadsheet").jexcel("getSelectedRows", true);
$("#spreadsheet").jexcel("getSelectedColumns", true);
从理论上讲,仅此一项就可以工作,但是 jExcel 在失去焦点时(即当用户单击按钮时)取消选择单元格,这就是为什么我使用 workarround 将单元格选择存储在对象中,然后使用该对象来合并单元格。
HTML:
<div id="spreadsheet"></div>
<br>
<input id="myB" type="button" value="Merge Selected" />
Javascript:
var mySlection = {};
var options = {
minDimensions: [10, 10],
onselection: storeSelection
};
$(document).ready(function() {
var mySpreadsheet = $("#spreadsheet").jexcel(options);
$("#myB").click(function() {
//Merge Cells using the stored selection
$("#spreadsheet").jexcel("setMerge", mySlection.firstcell, mySlection.colspan, mySlection.rowspan)
/*
you may now store the following values to your MySQL
mySlection.firstcell
mySlection.colspan
mySlection.rowspan
*/
});
});
function storeSelection() {
var sRows = $("#spreadsheet").jexcel("getSelectedRows", true);
var sCols = $("#spreadsheet").jexcel("getSelectedColumns", true);
mySlection.firstcell = [sCols[0], sRows[0]];
mySlection.colspan = sCols.length;
mySlection.rowspan = sRows.length;
}
要求:jQuery,jExcel 和 jSuites v3