mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-30 22:46:54 +00:00
fix(nc-gui): take raw data if autoSelectFieldType is true
This commit is contained in:
@@ -88,6 +88,7 @@ export default class ExcelTemplateAdapter extends TemplateGenerator {
|
||||
})
|
||||
return new Date(parsed.y, parsed.m, parsed.d, parsed.H, parsed.M, parsed.S)
|
||||
}
|
||||
|
||||
// fix imported date
|
||||
rows = rows.map((r: any) =>
|
||||
r.map((v: any) => {
|
||||
@@ -209,28 +210,39 @@ export default class ExcelTemplateAdapter extends TemplateGenerator {
|
||||
for (const row of rows.slice(1)) {
|
||||
const rowData: Record<string, any> = {}
|
||||
for (let i = 0; i < table.columns.length; i++) {
|
||||
if (table.columns[i].uidt === UITypes.Checkbox) {
|
||||
rowData[table.columns[i].column_name] = getCheckboxValue(row[i])
|
||||
} else if (table.columns[i].uidt === UITypes.Currency) {
|
||||
const cellId = this.xlsx.utils.encode_cell({
|
||||
c: range.s.c + i,
|
||||
r: rowIndex + columnNameRowExist,
|
||||
})
|
||||
|
||||
const cellObj = ws[cellId]
|
||||
rowData[table.columns[i].column_name] = (cellObj && cellObj.w && cellObj.w.replace(/[^\d.]+/g, '')) || row[i]
|
||||
} else if (table.columns[i].uidt === UITypes.SingleSelect || table.columns[i].uidt === UITypes.MultiSelect) {
|
||||
rowData[table.columns[i].column_name] = (row[i] || '').toString().trim() || null
|
||||
} else if (table.columns[i].uidt === UITypes.Date) {
|
||||
if (!this.config.autoSelectFieldType) {
|
||||
// take raw data instead of data parsed by xlsx
|
||||
const cellId = this.xlsx.utils.encode_cell({
|
||||
c: range.s.c + i,
|
||||
r: rowIndex + columnNameRowExist,
|
||||
})
|
||||
const cellObj = ws[cellId]
|
||||
rowData[table.columns[i].column_name] = (cellObj && cellObj.w) || row[i]
|
||||
rowData[table.columns[i].column_name] = cellObj.w
|
||||
} else {
|
||||
// toto: do parsing if necessary based on type
|
||||
rowData[table.columns[i].column_name] = row[i]
|
||||
if (table.columns[i].uidt === UITypes.Checkbox) {
|
||||
rowData[table.columns[i].column_name] = getCheckboxValue(row[i])
|
||||
} else if (table.columns[i].uidt === UITypes.Currency) {
|
||||
const cellId = this.xlsx.utils.encode_cell({
|
||||
c: range.s.c + i,
|
||||
r: rowIndex + columnNameRowExist,
|
||||
})
|
||||
|
||||
const cellObj = ws[cellId]
|
||||
rowData[table.columns[i].column_name] =
|
||||
(cellObj && cellObj.w && cellObj.w.replace(/[^\d.]+/g, '')) || row[i]
|
||||
} else if (table.columns[i].uidt === UITypes.SingleSelect || table.columns[i].uidt === UITypes.MultiSelect) {
|
||||
rowData[table.columns[i].column_name] = (row[i] || '').toString().trim() || null
|
||||
} else if (table.columns[i].uidt === UITypes.Date) {
|
||||
const cellId = this.xlsx.utils.encode_cell({
|
||||
c: range.s.c + i,
|
||||
r: rowIndex + columnNameRowExist,
|
||||
})
|
||||
const cellObj = ws[cellId]
|
||||
rowData[table.columns[i].column_name] = (cellObj && cellObj.w) || row[i]
|
||||
} else {
|
||||
// TODO: do parsing if necessary based on type
|
||||
rowData[table.columns[i].column_name] = row[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data[tn].push(rowData)
|
||||
|
||||
Reference in New Issue
Block a user