xlsx-to-json-img
Version:
Convert Excel (.xlsx) to JSON with embedded images as Base64. Supports custom column mapping.
1 lines • 36.6 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["/**\r\n * excel-to-json-with-images\r\n * Convert Excel (.xlsx) to JSON with embedded images as Base64.\r\n * Supports custom column mapping and header row index.\r\n */\r\n\r\n// ✅ 修复:使用命名导入,不再使用 default import\r\nimport { read, utils } from 'xlsx';\r\nimport JSZip from 'jszip';\r\nimport { DOMParser } from 'xmldom';\r\n\r\n/**\r\n * Helper: Convert input to ArrayBuffer\r\n * @param {Blob|Buffer|ArrayBuffer|Array} input - File input\r\n * @returns {Promise<ArrayBuffer>} ArrayBuffer\r\n */\r\nfunction toArrayBuffer(input) {\r\n if (typeof Blob !== 'undefined' && input instanceof Blob) {\r\n return input.arrayBuffer();\r\n } else if (input instanceof Buffer) {\r\n return Promise.resolve(input.buffer.slice(input.byteOffset, input.byteOffset + input.byteLength));\r\n } else if (input instanceof ArrayBuffer) {\r\n return Promise.resolve(input);\r\n } else if (Array.isArray(input)) {\r\n return Promise.resolve(new Uint8Array(input).buffer);\r\n } else {\r\n return Promise.reject(new Error('Unsupported file type. Expected Blob, Buffer, or ArrayBuffer.'));\r\n }\r\n}\r\n\r\n/**\r\n * Main function: Convert Excel file to JSON with images\r\n * @param {File|Blob|Buffer|ArrayBuffer} file - Excel file\r\n * @param {Object} options - Column mapping config\r\n * @returns {Promise<Object>} Result with sheets, images, metadata\r\n */\r\nexport async function excelToJsonWithImages(file, options) {\r\n let arrayBuffer;\r\n try {\r\n arrayBuffer = await toArrayBuffer(file);\r\n } catch (err) {\r\n throw new Error(`File conversion failed: ${err.message}`);\r\n }\r\n\r\n const workbook = read(arrayBuffer, { type: 'array', cellFormula: true });\r\n const sheetNames = workbook.SheetNames;\r\n const result = {\r\n sheets: {},\r\n images: [],\r\n metadata: {\r\n sheetCount: sheetNames.length,\r\n imageCount: 0,\r\n fileName: '',\r\n fileSize: 0,\r\n fileLastModified: ''\r\n }\r\n };\r\n\r\n // Extract images via JSZip\r\n const zip = await JSZip.loadAsync(arrayBuffer);\r\n const sheetInfo = await getSheetList(zip.files);\r\n const imageList = await analysisImageList(zip.files,sheetInfo);\r\n const images = await analysisImageLocation(zip.files, imageList,sheetInfo);\r\n result.images = images;\r\n result.metadata.imageCount = images.length;\r\n result.metadata.fileName = file.name;\r\n result.metadata.fileSize = file.size;\r\n result.metadata.fileLastModified = file.lastModified;\r\n\r\n for (const sheetName of sheetNames) {\r\n const worksheet = workbook.Sheets[sheetName];\r\n if (!worksheet) continue;\r\n\r\n const range = utils.decode_range(worksheet['!ref']);\r\n const data = [];\r\n\r\n const sheetConfig = options?.[sheetName];\r\n const columns = sheetConfig?.columns || [];\r\n const headerRowIndex = (sheetConfig?.headerIndex || 0);\r\n const startRow = range.s.r + headerRowIndex;\r\n\r\n // Read headers\r\n const headers = [];\r\n for (let C = range.s.c; C <= range.e.c; C++) {\r\n const cell = worksheet[utils.encode_cell({ r: startRow, c: C })];\r\n headers[C] = cell ? cell.v : `Column_${C}`;\r\n }\r\n\r\n // Map field names based on config\r\n const fieldMap = {};\r\n if (sheetConfig?.columns) {\r\n headers.forEach((header, index) => {\r\n const col = sheetConfig.columns.find(c => c.name === header);\r\n if (col) fieldMap[index] = col.field;\r\n });\r\n }\r\n\r\n // Read data rows\r\n for (let R = startRow + 1; R <= range.e.r; R++) {\r\n const row = {};\r\n let hasData = false;\r\n\r\n for (let C = range.s.c; C <= range.e.c; C++) {\r\n const cell = worksheet[utils.encode_cell({ r: R, c: C })];\r\n let value = null;\r\n\r\n if (cell) {\r\n // Check if cell contains image formula\r\n if (cell.h && cell.h.includes('DISPIMG')) {\r\n const imgCell = images.find(img => cell.h.includes(img.imgId));\r\n value = imgCell ? imgCell.path : null;\r\n } else {\r\n value = cell.v;\r\n }\r\n hasData = true;\r\n } else {\r\n const column = columns[C];\r\n if (column && column.isImage) {\r\n const imgCell = images.find(img => column.sheetName === img.name && img.isFloat && img.col === C);\r\n value = imgCell ? imgCell.path : null;\r\n hasData = true;\r\n }\r\n }\r\n\r\n const fieldName = fieldMap[C];\r\n if (fieldName) {\r\n if (row[fieldName] !== undefined) {\r\n if (!Array.isArray(row[fieldName])) {\r\n row[fieldName] = [row[fieldName]];\r\n }\r\n row[fieldName].push(value);\r\n } else {\r\n row[fieldName] = value;\r\n }\r\n }\r\n }\r\n\r\n if (hasData) data.push(row);\r\n }\r\n\r\n result.sheets[sheetName] = data;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n\r\nconst getSheetList = async (files) => {\r\n const sheetList = [];\r\n const drawingsRels = [];\r\n const drawingsXml = [];\r\n const path = 'xl/workbook.xml';\r\n const relFile = files[path];\r\n if (relFile)\r\n {\r\n const content = await relFile.async('string');\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(content, 'text/xml');\r\n const sheets = doc.getElementsByTagName('sheet');\r\n for (let i = 0; i < sheets.length; i++)\r\n {\r\n const r = sheets[i];\r\n const name = r.getAttribute('name');\r\n const sheetId = r.getAttribute('sheetId');\r\n const sheet = {\r\n name,\r\n sheetId\r\n };\r\n sheetList.push(sheet);\r\n const rels = {\r\n path: `xl/drawings/_rels/drawing${sheetId}.xml.rels`,\r\n sheetName: name,\r\n sheetId: sheetId,\r\n isFloat: true\r\n };\r\n drawingsRels.push(rels);\r\n const xml = {\r\n path: `xl/drawings/drawing${sheetId}.xml`,\r\n isFloat: true,\r\n sheetName: name,\r\n sheetId: sheetId,\r\n };\r\n drawingsXml.push(xml);\r\n }\r\n }\r\n return {\r\n sheetList,\r\n drawingsRels,\r\n drawingsXml\r\n };\r\n};\r\n/**\r\n * Analyze image list from .rels files\r\n * @param {Object} files - JSZip files object\r\n * @param {Object} sheetInfo\r\n * @returns {Promise<Array>} List of images with base64 path\r\n */\r\nasync function analysisImageList(files,sheetInfo) {\r\n const relPaths = [\r\n { path: 'xl/_rels/cellimages.xml.rels', isFloat: false },\r\n ...sheetInfo.drawingsRels,\r\n ];\r\n const promises = [];\r\n\r\n for (const key of relPaths) {\r\n const { path, isFloat, sheetName= '', sheetId='' } = key;\r\n const relFile = files[path];\r\n if (!relFile) continue;\r\n\r\n const content = await relFile.async('string');\r\n const doc = new DOMParser().parseFromString(content, 'text/xml');\r\n const relationships = doc.getElementsByTagName('Relationship');\r\n\r\n for (let i = 0; i < relationships.length; i++) {\r\n const r = relationships[i];\r\n const id = r.getAttribute('Id');\r\n const target = r.getAttribute('Target');\r\n const fullPath = isFloat ? target.replace('../', 'xl/') : `xl/${target}`;\r\n const imgFile = files[fullPath];\r\n if (!imgFile) continue;\r\n\r\n promises.push(\r\n imgFile.async('base64').then(base64 => {\r\n const ext = fullPath.toLowerCase().split('.').pop();\r\n const mimeMap = { jpg: 'jpeg', jpeg: 'jpeg', png: 'png', gif: 'gif', bmp: 'bmp' };\r\n const mimeType = `image/${mimeMap[ext] || 'png'}`;\r\n return { id, path: `data:image/${mimeType};base64,${base64}`, isFloat, sheetName, sheetId };\r\n })\r\n );\r\n }\r\n }\r\n\r\n return (await Promise.all(promises)).filter(Boolean);\r\n}\r\n\r\n/**\r\n * Analyze image location (cell or floating)\r\n * @param {Object} files - JSZip files object\r\n * @param {Array} imageList - List of extracted images\r\n * @param {Object} sheetInfo\r\n * @returns {Promise<Array>} List of images with position info\r\n */\r\nasync function analysisImageLocation(files, imageList,sheetInfo) {\r\n const drawingPaths = [\r\n { path: 'xl/cellimages.xml', isFloat: false },\r\n ...sheetInfo.drawingsXml\r\n ];\r\n const result = [];\r\n\r\n for (const key of drawingPaths) {\r\n const { path, isFloat, sheetName= '', sheetId='' } = key\r\n const file = files[path];\r\n if (!file || imageList.length === 0) continue;\r\n\r\n const content = await file.async('string');\r\n const doc = new DOMParser().parseFromString(content, 'text/xml');\r\n const blips = doc.getElementsByTagName('a:blip');\r\n const cNvPrs = doc.getElementsByTagName('xdr:cNvPr');\r\n const cols = doc.getElementsByTagName('xdr:col');\r\n const rows = doc.getElementsByTagName('xdr:row');\r\n\r\n for (let i = 0; i < blips.length; i++) {\r\n const embedId = blips[i].getAttribute('r:embed'); let imgObj;\r\n if(!isFloat){\r\n imgObj = imageList.find(img => img.id === embedId && !img.isFloat)\r\n } else {\r\n imgObj = imageList.find(img => img.id === embedId && img.isFloat && img.sheetId === sheetId)\r\n }\r\n if (!imgObj) continue;\r\n\r\n const name = cNvPrs[i]?.getAttribute('name') || '';\r\n const descr = cNvPrs[i]?.getAttribute('descr') || '';\r\n const formX = parseInt(cols[i * 2]?.textContent || 0);\r\n const formY = parseInt(rows[i * 2]?.textContent || 0) + 1;\r\n\r\n result.push({\r\n form: isFloat ? String.fromCharCode(65 + formX) + formY : '',\r\n col: formX,\r\n row: formY,\r\n isFloat,\r\n path: imgObj.path,\r\n id: imgObj.id,\r\n imgId: name,\r\n sheetName,\r\n sheetId,\r\n descr\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n"],"names":["toArrayBuffer","input","Blob","arrayBuffer","Buffer","Promise","resolve","buffer","slice","byteOffset","byteLength","ArrayBuffer","Array","isArray","Uint8Array","reject","Error","excelToJsonWithImages","_x","_x2","_excelToJsonWithImages","apply","arguments","_asyncToGenerator","_regenerator","m","_callee2","file","options","workbook","sheetNames","result","zip","sheetInfo","imageList","images","_iterator","_step","_loop","_t","_t2","w","_context4","p","n","v","concat","message","read","type","cellFormula","SheetNames","sheets","metadata","sheetCount","length","imageCount","fileName","fileSize","fileLastModified","JSZip","loadAsync","getSheetList","files","analysisImageList","analysisImageLocation","name","size","lastModified","_createForOfIteratorHelper","sheetName","worksheet","range","data","sheetConfig","columns","headerRowIndex","startRow","headers","C","cell","fieldMap","R","row","hasData","_loop2","_C","_context3","value","Sheets","a","utils","decode_range","headerIndex","s","r","c","e","encode_cell","forEach","header","index","col","find","field","imgCell","column","_imgCell","fieldName","_context2","h","includes","img","imgId","path","isImage","isFloat","undefined","push","d","_regeneratorValues","done","f","_ref","_callee","sheetList","drawingsRels","drawingsXml","relFile","content","parser","doc","i","sheetId","sheet","rels","xml","_context","async","DOMParser","parseFromString","getElementsByTagName","getAttribute","_x3","_x4","_x5","_analysisImageList","_callee3","relPaths","promises","_iterator2","_step2","_loop3","_t3","_context7","_toConsumableArray","key","_key$sheetName","_key$sheetId","relationships","_loop4","_context6","id","target","fullPath","imgFile","_context5","replace","then","base64","ext","toLowerCase","split","pop","mimeMap","jpg","jpeg","png","gif","bmp","mimeType","all","filter","Boolean","_x6","_x7","_x8","_analysisImageLocation","_callee4","drawingPaths","_iterator3","_step3","_loop5","_t4","_context0","_key$sheetName2","_key$sheetId2","blips","cNvPrs","cols","rows","_loop6","_context9","_cNvPrs$i","_cNvPrs$i2","_cols","_rows","embedId","imgObj","descr","formX","formY","_context8","parseInt","textContent","form","String","fromCharCode"],"mappings":"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"}