Я использую xlsx.core.min. js для экспорта json объекта в excel; Я меняю формат каждой ячейки, перебирая их.
Есть ячейки с пустыми данными, которые также были записаны в Excel.
Проблема в том, что когда в столбце больше пустых ячеек и мало ячеек с числами, Excel рассматривает весь столбец как Текстовый столбец, которого не должно происходить, если столбец имеет одно число, его следует рассматривать только как числовое поле.
Я ссылался на это для преобразования данных в числа https://github.com/SheetJS/sheetjs/issues/966
Как решить эту проблему, нужна помощь !!
/* new format */
var fmt = "0.00";
/* change cell format of range B2:D4 */
var range = { s: {r:1, c:convert_from_col}, e: {r:excel_row_list.length, c:excel_row_list[0].length} };
for(var R = range.s.r; R <= range.e.r; ++R) {
for(var C = range.s.c; C <= range.e.c; ++C) {
// debugger;
var cell = ws[XLSX.utils.encode_cell({r:R,c:C})];
if(!cell || cell.t != 's') continue; // only format numeric cells
if(cell.v != "" && cell.v != "NA" && cell.v != "AB" && cell.v != "-"){
cell.v = parseFloat(cell.v)
cell.t = "n";
cell.z = fmt;
}
}
}
/* generate workbook */
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "sheet1");
/* generate file and download */
const wbout = XLSX.write(wb, { type: "array", bookType: "xlsx" });
saveAs(new Blob([wbout], { type: "application/octet-stream" }), filename+".xlsx");