当前位置: 首页 > 知识库问答 >
问题:

如何在xlsx文件中设置所有单元格左对齐?

凤经武
2024-04-17

xlsx 文件导出文件怎么设置所有的单元格 左对齐

 // 成本分析数据导出  const exportcbDetaildata = () => {    const data = [      ['类别', '计划工作量', '占比', '实际工作量', '占比', '利润'], arraylist1, arraylist2, arraylist3, arraylist4, arraylist5, arraylist6, arraylist7, arraylist9,arraylist8    ];    const wb = XLSX.utils.book_new();    const ws = XLSX.utils.aoa_to_sheet(data);    // 设置单元格样式为左对齐    // 设置单元格样式    // ws['A1'].s = {    //   alignment: {    //     horizontal: 'left',    //     vertical: 'top',    //   },    // };    // // 通过循环设置其他单元格的左对齐    // for (let row = 1; row <= data.length; row++) {    //   for (let col = 1; col <= data[0].length; col++) {    //     const cellRef = XLSX.utils.encode_cell({ c: col - 1, r: row - 1 });    //     if (!ws[cellRef]) ws[cellRef] = {};    //     ws[cellRef].s = ws['A1'].s;    //   }    // }  // 设置单元格的样式    // 将工作表添加到工作簿    ws["!cols"] = [//设置每一列的宽度      { wch:10 },      { wch: 10 },      { wch: 10 },      { wch: 10 },      { wch: 10 },      { wch: 10 },    ]    console.log('最新的数据看看', data, ws)    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');    XLSX.writeFile(wb, '成本分析.xlsx');     };

共有2个答案

富勇军
2024-04-17

image.png

Demo代码

<!-- * @Author: along * @Description:  * @Date: 2024-04-17 16:04:19 * @LastEditors: along * @LastEditTime: 2024-04-17 16:04:22 * @FilePath: /table/index30.html--><!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>  </head>  <body></body>  <script src="https://cdn.bootcdn.net/ajax/libs/xlsx/0.18.5/xlsx.mini.min.js"></script>  <script>    // 创建一个新的工作簿    const wb = XLSX.utils.book_new();    // 创建一个新的工作表    const ws = XLSX.utils.aoa_to_sheet([      ['Hello', 'World'],      ['This', 'is', 'a', 'test'],    ]);    // 设置所有单元格左对齐    const range = XLSX.utils.decode_range(ws['!ref']);    for (let R = range.s.r; R <= range.e.r; ++R) {      for (let C = range.s.c; C <= range.e.c; ++C) {        const cell_address = { c: C, r: R };        const cell = ws[XLSX.utils.encode_cell(cell_address)];        if (cell) {          cell.s = {            alignment: {              horizontal: 'left',              vertical: 'center',            },          };        }      }    }    // 将工作表添加到工作簿    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');    // 导出工作簿为XLSX文件    XLSX.writeFile(wb, 'left_aligned.xlsx');  </script></html>
仲孙思源
2024-04-17

要在 xlsx 文件中设置所有单元格左对齐,你需要遍历工作表中的每个单元格,并设置其样式。你已经注释掉了相关的代码,只需取消注释并稍作修改即可。下面是修改后的代码示例:

// 成本分析数据导出const exportcbDetaildata = () => {  const data = [    ['类别', '计划工作量', '占比', '实际工作量', '占比', '利润'], arraylist1, arraylist2, arraylist3, arraylist4, arraylist5, arraylist6, arraylist7, arraylist9,arraylist8  ];  const wb = XLSX.utils.book_new();  const ws = XLSX.utils.aoa_to_sheet(data);  // 设置单元格样式为左对齐  for (let row = 1; row <= data.length; row++) {    for (let col = 1; col <= data[0].length; col++) {      const cellRef = XLSX.utils.encode_cell({ c: col - 1, r: row - 1 });      if (!ws[cellRef]) ws[cellRef] = {};      ws[cellRef].s = {        alignment: {          horizontal: 'left',          vertical: 'top',        },      };    }  }  // 设置单元格的样式  ws["!cols"] = [//设置每一列的宽度    { wch:10 },    { wch: 10 },    { wch: 10 },    { wch: 10 },    { wch: 10 },    { wch: 10 },  ]  console.log('最新的数据看看', data, ws)  XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');  XLSX.writeFile(wb, '成本分析.xlsx');};

在上面的代码中,我取消了设置单元格样式的注释,并修改了循环来遍历工作表中的每个单元格,并将每个单元格的样式设置为左对齐。现在,当你运行 exportcbDetaildata 函数时,它将生成一个 xlsx 文件,其中所有单元格都设置为左对齐。

 类似资料:
  • 在谷歌搜索StackOverflow之后,我还没有找到与这个问题相关的地方。目前我可以将空白单元格读取为空,但一次只能读取一个单元格。所以我必须写这样的东西: 这对我来说不太好,因为我对重复感到不满。我们可以设置返回?

  • 我正在使用Excel::Writer::XLSX从数组中创建Excel文件。现在,我正试图从数据中创建一个格式化的表(尽可能多地创建,而不是将其返回到另一个文件中)。 首先,当我使用set_column()设置背景色时,该颜色将针对整个列进行格式化。是否有一种方法可以指定只访问文件中的内容?不幸的是,当程序运行时,它每次都是动态的,不知道表中的最后一行应该是什么。 第二,有没有办法根据单元格内部的

  • 问题内容: 我想让可编辑JTables中的编辑器在开始编辑时选择单元格中的所有文本。我已经尝试了几件事,都是围绕从TableCellEditor.getTableCellEditorComponent方法返回的组件上调用JTextComponent.selectAll()进行的。我尝试过的所有方法均无济于事。 在最近的尝试中,我从Swing教程更改了SimpleTableDemo类,以使用自定义T

  • 我是javafx的新手。我已经在核心java代码设置值表。但是现在我正在转换我的javafx项目来维护代码和改进设计。 我试图设置价值表视图,但我不知道如何设置价值表视图。 这是我用来挥杆的代码。 但我需要将javafx中的代码从JTable转换为TableView。但是tableview没有找到getModel()方法。 我进行了搜索,但没有找到如何设置表视图的值<请给我参考或提示。 提前谢谢。

  • 问题内容: 我正在尝试创建一个仅显示数据且不允许进行任何编辑或选择的JTable。我通过运行将所有单元格设置为不可编辑: 但是我现在也尝试使所有单元格都无法选择。我发现该方法允许我在选择单元格时禁用整个行的选择,但这并没有阻止该单元格的选择。我浏览了的方法,但没有任何方法。有什么建议? 问题答案: 除了返回从,添加这些调用。