国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp - 微信小程序JSON數(shù)據(jù)導出表格(XLSX)

這篇具有很好參考價值的文章主要介紹了uniapp - 微信小程序JSON數(shù)據(jù)導出表格(XLSX)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

uniapp-微信小程序?qū)С霰砀瘢╔LSX)

這篇文章苦于,后端沒有提供下載接口,前端的小伙伴自己要處理Json數(shù)據(jù)的情況下

用到了,由Sheet.js出品的js-xlsx是一款非常方便的只需要純JS即可讀取和導出excel的工具庫,用于多種電子表格格式的解析器和編寫器。

這里只說明xlsx導出 其他導出,自行測試,sheet.js占用空間大,最好還是讓后端提供接口!

ps:只做了微信小程序測試,其他平臺自測!文章來源地址http://www.zghlxwxcb.cn/news/detail-567300.html

<template>
	<view><button @click="exportClick()">導出</button></view>
</template>

<script>
import * as XLSX from '@/utils/xlsx.core.min.js' //xlsxjs文件路徑
export default {
	data() {
		return {}
	},
	mounted() {
		console.log(XLSX)
	},
	methods: {
		/**
		 * 導出事件
		 */
		exportClick() {
			const header = ['date', 'defaultType', 'device']
			const headerName = { date: '相識日期', defaultType: '類型', device: '姓名' }
			const ExcelData = [{ date: '2022-02-02', defaultType: '御姐', device: '學姐' }, { date: '2022-02-03', defaultType: '蘿莉', device: '學妹' }]
			this.json2Excel(ExcelData, header, headerName, '海王表')
		},
		/**
		 * json轉(zhuǎn)化xlsx
		 * @param {Object} data 數(shù)據(jù)
		 * @param {Object} header header為數(shù)據(jù)源屬性名
		 * @param {Object} headerName 表頭文案
		 * @param {Object} fileName 文件名 ps:這里我寫死了 可自行修改
		 */
		json2Excel(data, header, headerName, fileName) {
			let wopts = {
				bookType: 'xlsx',
				bookSST: false,
				type: 'binary',
			}
			let workBook = {
				SheetNames: ['Sheet1'],
				Sheets: {},
				Props: {},
			}
			const newData = [headerName, ...data]
			// 1.XLSX.utils.json_to_sheet(data)接受一個對象數(shù)組并返回一個基于對象關(guān)鍵字自動生成的“標題”的工作表
			//默認的列順序由使用Object.keys的字段的第一次出現(xiàn)確定
			// 2.將數(shù)據(jù)放入對象workBook的Sheets中等待輸出
			//加了一句skipHeader:true,這樣就會忽略原來的表頭
			workBook.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(newData, { header: header, skipHeader: true })
			// 3.XLSX.write()開始編寫ExceL表格
			// 4.changeData()將數(shù)據(jù)處理成需要的輸出的格式
			console.log(this.changeData(XLSX.write(workBook, wopts)))
			let time = new Date().getTime()
			const StrData = this.changeData(XLSX.write(workBook, wopts))
			const fs = wx.getFileSystemManager() //獲取全局唯一的文件管理器
			fs.writeFile({
				filePath: wx.env.USER_DATA_PATH + `/海王表${time}.xlsx`, // wx.env.USER_DATA_PATH 指定臨時文件存入的路徑,后面字符串自定義
				data: StrData,
				encoding: 'binary', //二進制流文件必須是 binary
				success(res) {
					uni.hideLoading()
					wx.openDocument({
						// 打開文檔
						filePath: wx.env.USER_DATA_PATH + `/海王表${time}.xlsx`, //拿上面存入的文件路徑
						showMenu: true, // 顯示右上角菜單
						success: function(res) {},
						fail: function() {
							uni.showToast({
								title: `打開失敗`,
								icon: 'error',
								duration: 2000,
							})
						},
					})
				},
			})
		},
		/**
		 * 將數(shù)據(jù)處理成需要的輸出的格式
		 * @param {Object} s XLSX輸入
		 */
		changeData(s) {
			//如果存在ArrayBuffer對象(es6)最好采用該對象
			if (typeof ArrayBuffer !== 'undefined') {
				//1.創(chuàng)建一個字節(jié)長度為s.length的內(nèi)存區(qū)域
				let buf = new ArrayBuffer(s.length)
				//2.創(chuàng)建一個指向buf的Unit8視圖,開始于字節(jié)0,直到緩沖區(qū)的末尾
				let view = new Uint8Array(buf)
				//3.返回指定位置的字符的Unicode編碼
				for (let i = 0; i != s.length; ++i) {
					view[i] = s.charCodeAt(i) & 0xff
				}
				return buf
			} else {
				let buf = new Array(s.length)
				for (let i = 0; i != s.length; ++i) {
					buf[i] = s.charCodeAt(i) & 0xff
				}
				return buf
			}
		},
	},
}
</script>

到了這里,關(guān)于uniapp - 微信小程序JSON數(shù)據(jù)導出表格(XLSX)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • uniapp微信小程序系列(2)pages.json實用配置詳解

    uniapp微信小程序系列(2)pages.json實用配置詳解

    本篇主要介紹其中幾個實用的配置: 1.?配置應用級別樣式、tabBar樣式 2.?配置前端頁面路由、分包路由 3.?配置easycom全局組件(組件無需import引入直接使用) 創(chuàng)建一個包含首頁、我的兩個tabBar模塊的應用布局,配置參數(shù)如下: 詳細配置功能,請參考配置后的注釋 以下配置中

    2023年04月08日
    瀏覽(83)
  • 前端基于XLSX實現(xiàn)數(shù)據(jù)導出到Excel表格,以及提示“文件已經(jīng)被損壞,無法打開”的解決方法

    前端基于XLSX實現(xiàn)數(shù)據(jù)導出到Excel表格,以及提示“文件已經(jīng)被損壞,無法打開”的解決方法

    一、vue實現(xiàn)導出excel 1、前端實現(xiàn) xlsx是一個用于讀取、解析和寫入Excel文件的JavaScript庫。它提供了一系列的API來處理Excel文件。使用該庫,你可以將數(shù)據(jù)轉(zhuǎn)換為Excel文件并下載到本地。這種方法適用于在前端直接生成Excel文件的場景。 更多介紹可參見官網(wǎng) 1、安裝xlsx依賴 2、引

    2024年01月23日
    瀏覽(37)
  • 關(guān)于UniApp啟動到微信小程序工具提示找不到app.json

    關(guān)于UniApp啟動到微信小程序工具提示找不到app.json

    第一種情況 在? uni-app ?開發(fā)中使用? vue-cli-plugin-uni ?插件創(chuàng)建項目時,如果出現(xiàn)找不到? app.json ?的錯誤,可能是以下原因?qū)е碌模?項目根目錄下缺少? pages ?和? globalStyle ?目錄。 app.json ?文件中配置的? pages ?和? globalStyle ?字段對應的目錄必須存在,如果不存在或者目錄

    2024年02月12日
    瀏覽(92)
  • vue3前端excel導出;組件表格,自定義表格導出;Vue3 + xlsx + xlsx-style

    vue3前端excel導出;組件表格,自定義表格導出;Vue3 + xlsx + xlsx-style

    當畫面有自定義的表格或者樣式過于復雜的表格時,導出功能可以由前端實現(xiàn) 1. 使用的插件 : sheet.js-xlsx 文檔地址:https://docs.sheetjs.com/ 中文地址:https://geekdaxue.co/read/SheetJS-docs-zh/README.md xlsx-style:https://www.npmjs.com/package/xlsx-style 2. 安裝引用 安裝插件-vue3 引用插件 3. 組件表格

    2024年04月26日
    瀏覽(30)
  • uniapp項目(微信小程序)配置miniprogramRoot,解決報錯未找到app.json、未找到sitemap.json等問題

    uniapp項目(微信小程序)配置miniprogramRoot,解決報錯未找到app.json、未找到sitemap.json等問題

    前段時間有粉絲私信,說自己的微信小程序在開發(fā)者工具中報錯:“在項目根目錄未找到app.json”,如圖: 我以為這是他個人的問題,就直接說了解決方案,并建議用uniapp之類的框架開發(fā),更關(guān)注業(yè)務,結(jié)果周六日我用最新版hbuilder創(chuàng)建了vue3項目,部署的時候,報了同樣的錯

    2024年02月11日
    瀏覽(26)
  • uniapp使用微信開發(fā)工具打開微信小程序運行[ app.json 文件內(nèi)容錯誤] app.json: 在項目根目錄未找到 app.json

    uniapp使用微信開發(fā)工具打開微信小程序運行[ app.json 文件內(nèi)容錯誤] app.json: 在項目根目錄未找到 app.json

    這是?uniapp?項目?還未轉(zhuǎn)成微信小程序?需要轉(zhuǎn)換一下 ??? 重點:? ?首先一定要有 unpackage文件夾???如果沒有的需要到HBuilder X?編譯一下 編譯完,可以看到如下目錄既可以了

    2024年02月07日
    瀏覽(32)
  • 前端導出表格 修改樣式(xlsx-style)用法

    前端導出表格 修改樣式(xlsx-style)用法

    ????????xlsx-style 修改樣式的機制? 就是選中哪一行,那一列或者哪一個? 然后去修改? 比如表格最左上角的一個格子 坐標是 (0, 0) 下標? 也可以叫做? A1 選中之后 ? 可以修改其樣式? 1. 下載依賴 ? 首先下載依賴到項目 2. 引入到項目 3. 創(chuàng)建導出表格 ? ? ? ? 為什么

    2024年02月13日
    瀏覽(23)
  • 微信小程序中下載xlsx文件

    var storeSessionKey = uni.getStorageSync(\\\"storeSessionKey\\\"); ?? ??? ??? ??? ?var that = this; ?? ??? ??? ??? ?uni.request({ ?? ??? ??? ??? ??? ?url: that.$api + \\\'/openapi/storeAdmin/exportSalesData?activityId=\\\' + that.params ?? ??? ??? ??? ??? ??? ?.activityId, // 替換為服務器端的文件下載接口

    2024年02月06日
    瀏覽(21)
  • 微信小程序---表格的制作并展示云數(shù)據(jù)庫中的數(shù)據(jù)

    微信小程序---表格的制作并展示云數(shù)據(jù)庫中的數(shù)據(jù)

    微信小程序并沒有表格組件,可能是官方考慮到,在前端開發(fā)中,表格的嵌套性太多,用DIV代碼會比較簡潔就沒有實現(xiàn)吧。沒有現(xiàn)成的組件可以使用,針對這個問題,目前有兩種解決方案: 1)內(nèi)嵌 h5頁面,(畢竟 h5 的 table組件 眾多,但是各個參數(shù)都需要配置,比較麻煩)

    2024年02月16日
    瀏覽(22)
  • 微信小程序:表格中更改輸入框的值,實時獲取表格全部數(shù)據(jù),點擊按鈕更改數(shù)據(jù)庫指定項數(shù)據(jù)

    微信小程序:表格中更改輸入框的值,實時獲取表格全部數(shù)據(jù),點擊按鈕更改數(shù)據(jù)庫指定項數(shù)據(jù)

    樣例: 樣式展示 數(shù)據(jù)庫中原始第一條數(shù)據(jù) ?修改表格第一行的數(shù)量: 數(shù)據(jù)庫結(jié)果? ? ?核心代碼 wxml ①wx:for:執(zhí)行循環(huán)將數(shù)組數(shù)據(jù)展示出來 ②在某一單元格加上input樣式 ③在input中綁定:文本框改變事件,并且綁定data-index便于知道改變的具體是哪一行的數(shù)據(jù) wxss js ①變更in

    2024年02月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包