使用 cfwheels、coldfusion 和 cfspreadsheet 创建具有非标准列名(带空格)的 excel 文件导出
Create an excel file export with non standard column names (with spaces) using cfwheels, coldfusion and cfspreadsheet
这更像是一个操作方法,而不是一个实际问题。 (我搜索了没找到解决方案,所以我想出了这个)
我需要创建一个 excel 文件导出,允许用户:
- 使用表单过滤数据,来自原始 table
- 将结果从原始 table.
导出到 excel 文件
- 允许包含空格和一些特殊字符的非标准列名。
- 在某些列中格式化导出的数据,同时保留原始 table 值(用于过滤)。
我搜索了但找不到解决方案,所以我想到了这个:
使用示例 table "Salary"
CREATE TABLE [dbo].[Salary](
[id] [int] IDENTITY(1,1) NOT NULL,
[employee_id] [varchar](36) NULL,
[salary] [decimal](18, 0) NULL,
[createdat] [datetime] NULL,
[updatedat] [datetime] NULL,
[updated_by] [varchar](36) NULL,
[created_by] [varchar](36) NULL )
首先创建一个用于拉取 excel 数据的特殊模型。示例 "export.cfc"
models\export.cfc
<cfcomponent extends="Model" output="false">
<cffunction name="init">
<cfset table("Salary")/>
<!--- defined properties to allow spaces in column names via [] alias.--->
<cfset property(sql="employee_id", name="[Employee ID]")>
<cfset property(sql="dbo.getName(employee_id)", name="[The Employee Name]")>
<cfset property(sql="salary", name="[He gets paid what?]")>
<cfset property(sql="CONVERT(VARCHAR, createdAt, 101)", name="[Date Created]")>
</cffunction>
</cfcomponent>
然后只需提取 excel 导出所需的特定列。 ([] 为必填项)
<cfset columns = "id,[employee id],[The Employee Name],[He gets paid what?],[Date Created]"/>
<cfset excelData = model("export").findAll(
select=columns,
parameterize=false
) />
<cfspreadsheet
action = "write"
filename="#expandpath('files')#\export.xls"
query="excelData"
overwrite="true">
这更像是一个操作方法,而不是一个实际问题。 (我搜索了没找到解决方案,所以我想出了这个)
我需要创建一个 excel 文件导出,允许用户:
- 使用表单过滤数据,来自原始 table
- 将结果从原始 table. 导出到 excel 文件
- 允许包含空格和一些特殊字符的非标准列名。
- 在某些列中格式化导出的数据,同时保留原始 table 值(用于过滤)。
我搜索了但找不到解决方案,所以我想到了这个:
使用示例 table "Salary"
CREATE TABLE [dbo].[Salary](
[id] [int] IDENTITY(1,1) NOT NULL,
[employee_id] [varchar](36) NULL,
[salary] [decimal](18, 0) NULL,
[createdat] [datetime] NULL,
[updatedat] [datetime] NULL,
[updated_by] [varchar](36) NULL,
[created_by] [varchar](36) NULL )
首先创建一个用于拉取 excel 数据的特殊模型。示例 "export.cfc"
models\export.cfc
<cfcomponent extends="Model" output="false">
<cffunction name="init">
<cfset table("Salary")/>
<!--- defined properties to allow spaces in column names via [] alias.--->
<cfset property(sql="employee_id", name="[Employee ID]")>
<cfset property(sql="dbo.getName(employee_id)", name="[The Employee Name]")>
<cfset property(sql="salary", name="[He gets paid what?]")>
<cfset property(sql="CONVERT(VARCHAR, createdAt, 101)", name="[Date Created]")>
</cffunction>
</cfcomponent>
然后只需提取 excel 导出所需的特定列。 ([] 为必填项)
<cfset columns = "id,[employee id],[The Employee Name],[He gets paid what?],[Date Created]"/>
<cfset excelData = model("export").findAll(
select=columns,
parameterize=false
) />
<cfspreadsheet
action = "write"
filename="#expandpath('files')#\export.xls"
query="excelData"
overwrite="true">