Excel数据上传

  • Excel数据上传处理

Office相关文档处理 - 图1

处理方式:

  • 此例中是开发教程中申请审批系统案例中的供应商信息上传功能
  • 用一个File Field文件输入元件来由用户上传服务器获取文件
  • 将文件内容直接传给服务器处理元件,注意直接传文件进入服务器行为处理元件中,这是所有浏览器安全规范的要求
  • 传入的文件数据结构是系统固定的File类型变量对象,可由元件选项板中拖入File数据结构对象后连线传值处理
  • File文件数据结构的内容传值给Load Excel Table获取表格数据值元件
  • Load Excel Table获取表格数据后,输出内容为每行信息的数据结构变量元件,然后将每行的数据结构信息转为数据库记录保存

Office相关文档处理 - 图2

以上示例为对表格内容每行信息的数据结构变量(对其输入的每行值)进行处理:

  • 每行的数据结构“gysdata”对象命名可随意
  • 默认表格第一行为名称值所在行
  • 数据结构的每个变量的名称需要与表格中第一行各列名称值一致
  • 不需要传入的列可以不写入列名,比如表格中有4个列名,可以只写3个名称提取3列信息
  • 如果列名不存在或写错,则会保存时验证并在验证结果区报错提示修改,参考“错误、调试和处理”一节内容
  • 存入数据库的记录或用户端表格中显示的多行记录可用Show File(通过浏览器下载元件)下载到CSV等各类格式的文件中

Office相关文档处理 - 图3

  • 详细处理逻辑

Office相关文档处理 - 图4

  • “记录转化”中先将记录进行转化,每行信息合并为一个带“,”分隔符号的字符串
  • “各行合并”中多行信息的多个字符串进行多行合并处理,各行间加换行符号“\n”形成一个长字符串
  • 长字符串的文件内容传入Text to Binary(字符串转二进制内容元件),按一定编码方式转换
    • 转为二进制需要看服务器系统编码而定,目前一般都转为“utf-8”,示例用的是“GB2312”
  • 为最终输出的文件用生成标题子功能逻辑定义文件名称
  • 定义文件类型“Text/CSV”
    • 文件类型的说明请参考其他在线资源,属行业规范(请参考“http://www.iana.org/assignments/media-types/media-types.xhtml”
    • CSV是一个用“,”来标记各列信息,“\n”来标记不同行信息的格式化文件类型
    • CSV文件Excel中可以打开进行数据查看整理,注意CSV文件中所有数据都是文本,必要时用Excel导入方式打开,在格式弹窗中来预处理列为某个指定的格式而非默认为文本格式

Office相关文档处理 - 图5

  • 多个变量信息动态按需转为一个字符串我们可以用Create from Template(用模板生成字符串元件)处理
    • 常用模板字符串中变量写为“${a},${b}…”,执行时同输入变量a,b…等的值替换模板中对象
    • 确认输入的每条变量文本信息不能带“,”符号,如果带,需要用一个行为处理逻辑用其他字符串替换,否则传入的符号与模板中“,”分隔符号一致时导出数据会错位显示

Office相关文档处理 - 图6

  • 下载文件的标题生成逻辑中,同样用Create from Template(用模板生成字符串元件)处理
    • 上例中逻辑是:输入一个文件名,自动用模板为名称添加下载的当前时间信息后缀形成带日期后缀的新文件名

Office相关文档处理 - 图7

  • 多行信息与标题合并为一个长字符串,用Concatenate字符串合并元件处理
  • 换行符号“\n”将各行作分隔标记


文件存取一:放入数据库

  • 可以为数据库表设计一个文档类型字段,将文件上传存入数据库

Office相关文档处理 - 图8

上例将文件存为一个数据库表字段,并将文件名称存为另一个字段

  • 存入数据库的文件可以用Show File(通过浏览器下载文件元件)查询到并从用户浏览器端下载

Office相关文档处理 - 图9

  • 比如以上开发逻辑放于一个按钮中时,点击按钮,就会从wenjian数据库表中找到并下载“报价单”名称的文件
    • “文件名”字段是主键不能录入重复值,每次只会查到最多一个记录
    • 上例中如果保存报错会提示前后复数对象对应不一致,可以忽略报错信息


文件存取二:放入服务器文件夹

  • Write Resource写入文件元件可以将内容生成文件存放到服务器端的一个文件夹中

Office相关文档处理 - 图10

  • 上例中,先用Read Resource读取外部或某个服务器文件夹的文件内容
  • 注意写入文件到服务器文件夹中需要用Create File URL(生成文件路径元件)来生成文件地址
    • 上面用到的写入文件地址为:c:/temp/image.gif,也可以是C:\Users\…


OpenOffice文件生成、PDF文件生成

  • OpenOffice文件生成需在服务器端安装并运行Open Office软件,可以用后台运行方式一直启动OpenOffice服务,以下为WINDOWS中启动运行方式:

Office相关文档处理 - 图11
改为后台运行不显示OpenOffice软件打开窗口:
Office相关文档处理 - 图12

  • 先在服务器一个项目文件夹中设计Open Office文件模板,将变量内容用${BianLiangMingCheng}来替换

Office相关文档处理 - 图13

  • 设计模板读取、变量信息导入生成文件逻辑:

Office相关文档处理 - 图14

  • 预设计的模板需在逻辑中先传入URL来用Read Binary File(读取二进制文件元件)来读取
  • 将变量传入数据结构再传入Create OpenDocument from Template(用模板生成文件元件)生成文件
  • 注意按模板中变量设计的数据结构,名称要求与模板一致
  • 最终生成文件的格式为:application/vnd.oasis.opendocument.text
  • 导入内容信息生成文件转为PDF文件并下载的完整逻辑

Office相关文档处理 - 图15

因为生成后直接下载,所在在Show File下载文件元件中开发处理


利用第三方插件生成报表报告

请参考本手册“第三方功能接入”“Lodop专业打印”相关说明


软件系统中对文件的几种处理方式

请参考“开发案例手册”中“文件对象的处理”一节