Relatório .csv com vue.js

19/10/2022

0

Bom dia!!

Estou precisando fazer um relatório para exportação em EXCEL (.csv) com vue.js.

Os dados estão num outro arquivo, mas já importei eles para o que estou usando.

Fiz o botão:
<q-btn fab icon="download" color="teal-9" style="width: 60px" @click="exportTable"/>

Importei o arquivo que contem as informações:
import OrdersTable from '../components/OrdersTable.vue'

Coloquei a função wrapCsvValue:
function wrapCsvValue (val, formatFn, row) {
let formatted = formatFn !== void 0
? formatFn(val, row)
: val

formatted = formatted === void 0 || formatted === null
? ''
: String(formatted)

formatted = formatted.split('"').join('""')
/**
* Excel accepts \n and \r in strings, but some other CSV parsers do not
* Uncomment the next two lines to escape new lines
*/
// .split('\n').join('\\n')
// .split('\r').join('\\r')

return `"$"`
}

E fiz o método de exportar:

exportTable () {
// naive encoding to csv format
let content = [this.columns.map(col => wrapCsvValue(col.label))].concat(
this.orders.map(row => this.columns.map(col => wrapCsvValue(
typeof col.field === 'function'
? col.field(row)
: row[ col.field === void 0 ? col.name : col.field ],
col.format,
row
)).join(';'))
).join('\r\n')

content = content.replace(/,"/g,";"")

const status = exportFile(
'export.csv',
content,
'text/csv',
)

if (status !== true) {
$q.notify({
message: 'Browser denied file download...',
color: 'negative',
icon: 'warning'
})
}
},

mas ainda não funciona, o que pode estar faltando?
Gabriele Figueiredo

Gabriele Figueiredo

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar