定制化你的报表:
hi👋 ,向大家推荐一款基于 Univer Go 平台开发的智能模板—— Data Report。该模版内置了强大的TypeORM 库实现与数据库高效交互,在使用该模版时,你将拥有充分的自由度。
-
可以轻松切换数据库选项,灵活查询数据
-
根据实际需求自由选择字段,还能随心所欲地挑选报表样式
-
根据特殊需求修改脚本,定制出完全属于自己的专属报表。
同时 Data Report 让你无需脱离熟悉的电子表格操作环境,就能实现报表设计器的全部功能,真正开启数据处理的全新模式,为你带来便捷、高效的数据处理新体验 。
Univer Go 是一款高度可定制化的电子表格工具,能够根据用户需求构建一个性能与功能对标excel的电子表格。它支持灵活的功能扩展,涵盖基础数据处理、复杂的导入导出操作和协同功能,同时为 UI/UX 设计提供了定制空间,助力打造易用交互界面。此外,Univer Go 融合先进 AI 技术,配备了功能强大的脚本编写与执行工具,支持开发者创建和运行自动化脚本、进行数据库连接与数据读写管理以及开发自定义应用。无论是初学者还是专业开发者,都能凭借其简洁的操作逻辑和丰富功能支持,轻松上手。
体验链接:https://go.univer.ai/en-US
运行后的效果:
具体操作步骤及界面请查看着重介绍业务的文章:
见证!从报表小白到高手,Univer Go 提供了一款免费的报表设计器模版
Univer Go 内获取源代码实现 Data Report :
使用链接:Univer Go
1. client script调用node script获取数据库数据
//client中相关代码
const data = await univerAPI.runOnServer("database", "querySql", { host, port, username, password, database, schema, sqlType, sqlStr });
if (data) {
try {
return JSON.parse(data);
} catch (e) {
console.error('parse result error');
}
}
//node script相关代码
async function querySql({ host, port, username, password, database, schema, sqlType, sqlStr }) {
const datasource = new typeorm.DataSource({
type: sqlType, // or 'mysql' for MySQL
host: host,
port: port,
username: username,
password: password,
database: database,
schema: schema,
synchronize: false, // Don't auto-sync schema, we are just reading tables
// logging: true, // Enable SQL query logging
});
let data;
const queryRunner = datasource.createQueryRunner();
try {
// Initialize TypeORM connection
await datasource.initialize();
data = await queryRunner.query(sqlStr);
} catch (error) {
console.error('Error during execution:', error);
} finally {
await queryRunner.release();
await datasource.destroy();
}
return JSON.stringify(data);
}
2. 将读取回来的数据通过数据绑定插件展示到对应的path范围中, 具体的插件使用请看这里https://www.npmjs.com/package/@univerjs/sheets-source-binding
const data = await getData(param);
const sourceInfo = {
records: data,
fields: Object.keys(data?.[0] ?? {}),
}
workbook.setSourceData(param.sourceId, sourceInfo);
以上内容仅是 Univer GO 强大功能的冰山一角!欢迎您体验 Univer GO,不仅能获取更全面的代码,还能探索丰富多样的定制化功能,解锁高效工作新方式 。