luckysheet.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. <link rel='stylesheet' href='lib/luckysheet/plugins/css/pluginsCss.css' />
  6. <link rel='stylesheet' href='lib/luckysheet/plugins/plugins.css' />
  7. <link rel='stylesheet' href='lib/luckysheet/css/luckysheet.css' />
  8. <link rel='stylesheet' href='lib/luckysheet/assets/iconfont/iconfont.css' />
  9. <script src="lib/luckysheet/plugins/js/plugin.js"></script>
  10. <script src="lib/luckysheet/luckysheet.umd.js"></script>
  11. <style>
  12. body, html {
  13. margin: 0;
  14. padding: 0;
  15. width: 100%;
  16. height: 100%;
  17. overflow: hidden;
  18. }
  19. #luckysheet {
  20. margin: 0;
  21. padding: 0;
  22. width: 100%;
  23. height: 100%;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div id="luckysheet"></div>
  29. <script>
  30. let isInitialized = false
  31. window.addEventListener('message', function(event) {
  32. const { type, data, readonly } = event.data
  33. if (type === 'init' && !isInitialized) {
  34. luckysheet.create({
  35. container: 'luckysheet',
  36. lang: 'zh', // 设置中文语言,工具栏提示为中文
  37. // 控制顶部工具栏显示:
  38. // - readonly=true (查阅模式): showtoolbar=false 隐藏工具栏
  39. // - readonly=false (添加/编辑模式): showtoolbar=true 显示工具栏
  40. showtoolbar: !readonly,
  41. showinfobar: false,
  42. showsheetbar: true,
  43. // 控制是否允许增加行/列
  44. enableAddRow: !readonly,
  45. enableAddCol: !readonly,
  46. userInfo: false,
  47. // 状态栏设置(包含缩放控制):
  48. // - showstatisticBar: true 显示状态栏(包含缩放控制)
  49. showstatisticBar: true,
  50. // 控制编辑栏显示:
  51. // - readonly=true: sheetFormulaBar=false 隐藏编辑栏
  52. // - readonly=false: sheetFormulaBar=true 显示编辑栏
  53. sheetFormulaBar: !readonly,
  54. allowEdit: !readonly,
  55. // 启用缩放控制 - 优化配置
  56. showtoolbarConfig: {
  57. zoom: true, // 启用缩放控制,包括右下角的缩放组件
  58. },
  59. // 缩放比例配置
  60. zoomRatio: {
  61. default: 100, // 默认缩放比例
  62. max: 400, // 最大缩放比例
  63. min: 10 // 最小缩放比例
  64. },
  65. // 显示行号列标
  66. showRowBar: true,
  67. showColumnBar: true,
  68. // 单元格右键菜单
  69. cellRightClickConfig: {
  70. copy: true,
  71. paste: true,
  72. insertRow: !readonly,
  73. insertColumn: !readonly,
  74. deleteRow: !readonly,
  75. deleteColumn: !readonly,
  76. hideRow: !readonly,
  77. hideColumn: !readonly,
  78. rowHeight: !readonly,
  79. columnWidth: !readonly
  80. },
  81. data: data || [{ name: 'Sheet1', color: '', status: 1, order: 0, data: [[{ v: '' }]] }],
  82. hook: {}
  83. })
  84. isInitialized = true
  85. } else if (type === 'getData') {
  86. const data = luckysheet.getAllSheets()
  87. event.source.postMessage({ type: 'dataResult', data: data }, event.origin)
  88. } else if (type === 'setData') {
  89. luckysheet.destroy()
  90. isInitialized = false
  91. luckysheet.create({
  92. container: 'luckysheet',
  93. lang: 'zh',
  94. showtoolbar: !readonly,
  95. showinfobar: false,
  96. showsheetbar: true,
  97. enableAddRow: !readonly,
  98. enableAddCol: !readonly,
  99. userInfo: false,
  100. showstatisticBar: true,
  101. sheetFormulaBar: !readonly,
  102. allowEdit: !readonly,
  103. // 启用缩放控制 - 优化配置
  104. showtoolbarConfig: {
  105. zoom: true, // 启用缩放控制,包括右下角的缩放组件
  106. },
  107. // 缩放比例配置
  108. zoomRatio: {
  109. default: 100, // 默认缩放比例
  110. max: 400, // 最大缩放比例
  111. min: 10 // 最小缩放比例
  112. },
  113. // 显示行号列标
  114. showRowBar: true,
  115. showColumnBar: true,
  116. // 单元格右键菜单
  117. cellRightClickConfig: {
  118. copy: true,
  119. paste: true,
  120. insertRow: !readonly,
  121. insertColumn: !readonly,
  122. deleteRow: !readonly,
  123. deleteColumn: !readonly,
  124. hideRow: !readonly,
  125. hideColumn: !readonly,
  126. rowHeight: !readonly,
  127. columnWidth: !readonly
  128. },
  129. data: data,
  130. hook: {}
  131. })
  132. isInitialized = true
  133. }
  134. })
  135. // 通知父页面已准备好
  136. window.parent.postMessage({ type: 'ready' }, '*')
  137. </script>
  138. </body>
  139. </html>