我需要使用 sheetjs 创建一个带有合并单元格的 xlsx。
数据:
[
{
"id": "nick",
"items": [
{
"name": "ball"
},
{
"name": "phone"
}
]
},
{
"id": "jack",
"items": [
{
"name": "pen"
},
{
"name": "doll"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我的代码:
var ws = XLSX.utils.json_to_sheet(data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "");
var wbout = XLSX.write(wb, {bookType:'xlsx', type:'array'});
saveAs(new Blob([wbout],{type:"application/octet-stream"}), filename + ".xlsx");
Run Code Online (Sandbox Code Playgroud)
我想得到的结果:
我如何得到这个结果?
... 谢谢
I am referring this example to export a worksheet https://github.com/SheetJS/js-xlsx/issues/817. How to do cell styling like background coloring,font size and increasing the width of the cells to make the data fit exactly.I have gone through the documentation but couldn't find any proper examples to use fill etc.Is there a way to do the formatting?
Below is the code snippet:
/* make the worksheet */
var ws = XLSX.utils.json_to_sheet(data);
/* add to workbook */
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, …Run Code Online (Sandbox Code Playgroud) 我成功地使用了来自 sheetJS 网站的示例,如下所示:
/* create new workbook */
var workbook = XLSX.utils.book_new();
/* convert table 'table1' to worksheet named "Sheet1" */
var ws1 = XLSX.utils.table_to_sheet(document.getElementById('table1'));
XLSX.utils.book_append_sheet(workbook, ws1, "Sheet1");
/* convert table 'table2' to worksheet named "Sheet2" */
var ws2 = XLSX.utils.table_to_sheet(document.getElementById('table2'));
XLSX.utils.book_append_sheet(workbook, ws2, "Sheet2");
/* workbook now has 2 worksheets */
Run Code Online (Sandbox Code Playgroud)
是否可以将多个 html 表附加到单个工作表?它们具有相同的结构。我想它可能是这样的:
/* convert 'table1', 'table2', 'table3' to single sheet named "Sheet1" */
var ws1 = XLSX.utils.table_to_sheet(document.getElementById('table1'));
var ws2 = XLSX.utils.table_to_sheet(document.getElementById('table2'));
var ws3 = …Run Code Online (Sandbox Code Playgroud) 我有一个SheetJS的.xlsx生成的文件,但我一直没能投入border到cells.
我有这个:
我需要这个:
有没有办法做到这一点SheetJS?如果有办法应用其他单元格样式(如背景颜色),那将会很酷.
编辑:
我正在用这个功能制作纸张:
function makeSheet(wb, day){ //sheet for a specific day
var ws = XLSX.utils.table_to_sheet(document.getElementById("table"+day));
wb.SheetNames.push(day);
wb.Sheets[day] = ws;
//columns width working ok
wb["Sheets"][day]["!cols"] = [{ wpx : 70 },{ wpx : 121 }];
//wb["Sheets"][day]["A1"]["s"] = {"border":"1px"}; //I've tried this but doesn't work
return wb;
}
Run Code Online (Sandbox Code Playgroud)
编辑2
我创建了这个示例代码段,如果你可以在这里放置边框和/或其他单元格样式,那将是一个胜利:
$(document).ready(myMain);
function myMain(){
$(document).on("click","#btnexcel", function(){makeExcel()});
}
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for …Run Code Online (Sandbox Code Playgroud)我有一个对象数组。默认情况下, sheet_to_json 使用对象键作为标题。但是,我需要在不显式修改对象数组的情况下重命名这些标题。
这可能吗?
我正在尝试解析和读取 Excel 工作表中的每个单元格;看来我正在解析文件,但我无法遍历每个单元格并显示它们。
我正在使用以下代码:
var workbook = XLSX.read('datasets/persons.xlsx', { type: 'binary' });
var sheet_name_list = workbook.SheetNames;
// console.log(sheet_name_list);
sheet_name_list.forEach(function (y) { /* iterate through sheets */
//Convert the cell value to Json
console.log(y);
var roa = XLSX.utils.sheet_to_json(workbook.Sheets[y]);
console.log(roa);
if (roa.length > 0) {
result = roa;
}
});
Run Code Online (Sandbox Code Playgroud)
当我尝试打印时,我得到一个空数组console.log(roa),知道我应该如何迭代文件中的每个单元格吗?
我使用SheetJS在我的 node.js 应用程序中创建一个 Excel 表格:
const xlsx = require('xlsx');
const workbook = xlsx.utils.book_new();
const worksheet = xlsx.utils.aoa_to_sheet([
['Number', 'Name', 'Value'],
[1, 'Bill', 1500],
[2, 'John', 2300]
]);
xlsx.utils.book_append_sheet(workbook, worksheet, 'Accounts');
xlsx.writeFile(workbook, 'output.xlsx');
Run Code Online (Sandbox Code Playgroud)
如何冻结表格的一个窗格,例如第一行?说“冻结”我的意思是使行和/或列始终保留在表查看器界面的顶部。
我必须向我的 xlsm 文件中的特定单元格(例如 D4 单元格)写入一个值。我可以看到选项
XLSX.writeFile(workbook, 'out.xlsx');
Run Code Online (Sandbox Code Playgroud)
但是我没有看到任何将值写入特定单元格的内容(需要写入的值应该在哪里传递?)。或者,它不如提供的读取特定单元格值的示例那么清楚。如果有人能给我提供一个简单的代码片段示例,我会很高兴。
这是我读取特定单元格值的方式:
if(typeof require !== 'undefined') XLSX = require('C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\xlsx');
var workbook = XLSX.readFile('xlsm');
var first_sheet_name = workbook.SheetNames[0];
var address_of_cell = 'D5';
var worksheet = workbook.Sheets[first_sheet_name];
var desired_cell = worksheet[address_of_cell];
desired_value = (desired_cell ? desired_cell.v : undefined);
console.log('Cell Value is: '+ desired_value);
Run Code Online (Sandbox Code Playgroud) 文档对我来说似乎很混乱。如何从对象数组创建文档,每个对象代表一行并将其保存为缓冲区?
我正在尝试使用 React 和 SheetJs 库实现导出到 excel。看起来我可以下载它,但实际输出看起来不像预期的那样。我接收对象数组并使用XLSX.utils.json_to_sheet([data])API 将 JS 对象数组转换为工作表。问题是:

我在这里复制了它
sheetjs ×10
javascript ×7
xlsx ×3
excel ×2
angularjs ×1
html ×1
jasmine ×1
js-xlsx ×1
node.js ×1
npm ×1
protractor ×1
reactjs ×1
spreadsheet ×1