index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import * as XLSX from 'xlsx'
  2. import { ElMessage } from 'element-plus'
  3. export function getPageInfo (){
  4. return new Promise((res, rej) => {
  5. chrome.runtime.sendMessage(
  6. {
  7. type: 'FROM_SIDE_PANEL_TO_GET_PAGE_INFO'
  8. },
  9. async (response) => {
  10. if (chrome.runtime.lastError) {
  11. console.error('消息发送错误:', chrome.runtime.lastError)
  12. rej(chrome.runtime.lastError)
  13. } else {
  14. res(response.data)
  15. }
  16. }
  17. )
  18. })
  19. }
  20. export function handleInput (xlsxData, formMap) {
  21. chrome.runtime.sendMessage({
  22. type: 'FROM_SIDE_PANEL_TO_INPUT_FORM',
  23. data: {
  24. excelData: xlsxData,
  25. formData: formMap
  26. }
  27. })
  28. }
  29. export function getXlsxValue (file) {
  30. return new Promise((res, rej) => {
  31. try {
  32. const reader = new FileReader()
  33. reader.readAsArrayBuffer(file)
  34. reader.onload = (e) => {
  35. const data = new Uint8Array(e.target.result)
  36. const workbook = XLSX.read(data, {
  37. type: 'array',
  38. cellDates: false,
  39. cellNF: true,
  40. cellText: true,
  41. dateNF: 'yyyy-mm-dd'
  42. })
  43. // 修复日期处理
  44. const firstSheet = workbook.Sheets[workbook.SheetNames[0]]
  45. // 转换为JSON数据
  46. const readData = XLSX.utils.sheet_to_json(firstSheet, {
  47. header: 1,
  48. raw: false,
  49. defval: '',
  50. dateNF: 'yyyy-mm-dd'
  51. })
  52. res(readData)
  53. }
  54. } catch (error) {
  55. rej()
  56. }
  57. })
  58. }