问题标签 [cfspreadsheet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1131 浏览

excel - 无法使用 ColdFusion 创建正确的 Excel 电子表格

我有一个客户要求从查询中生成 Excel 电子表格。我有查询踢出字段,我可以毫不费力地生成 Excel 文件。当客户端获取该 Excel 文件然后尝试对其进行操作时,就会出现问题。

大部分问题来自应标记为货币或日期的字段。我经过一番努力,能够生成一个“真实”的日期字段。在此 Excel 没有正确排序日期之前。我可以使用下面的代码调用 Excel 公式。DateValue强制 Excel 将其确认为真实日期字段。但是,当通过 Excel 操作此文件时,此操作会失败。

下一个问题是货币领域。我无法让 Excel 承认这些值是一种货币。它总是出现自定义。设置此项后,该SUM功能将无法在 Excel 中使用。您可以单独添加字段,例如A1+B1+C1 = TOTAL. 但是,当有 200 行时,这将无济于事。

我能够从另一个有类似情况的 CF 程序员那里得到一个建议。他首先生成了带有正确标题的 Excel 文件,并将列设置为正确的字段,例如日期和货币等。

下一步是逐行填写字段,并且它们的格式应该正确。

代码:

单元格中的数据已正确格式化。生成此文件并将其流式传输给用户时,列未按预期格式化。

有没有人知道这种方法是否可行,或者有更好的建议让 CF 生成正确的日期和货币字段以供 Excel 确认?

在 RHEL 5 上运行的 Adob​​e ColdFusion v10。

每个请求这里是一些使用queryNew 的代码,它将生成代码日期和货币。

第一步:我创建了一个第一行冻结的 Excel 文件,它有列标题。第一列已被指定为日期,格式为长日期-mm/dd/yyy;第二列是设置为货币的美元。

我阅读了该文件,然后填写行并将文件流式传输给用户以供下载。

您可以在 MS Excel 或 Google 表格中打开该文件。测试一个,在第一行冻结的情况下,我们应该能够对日期字段进行排序。我的结果是:日期没有正确排序。在第 2 列的货币中,如果我们尝试做一个有效的 SUM!这以前没有用,但现在可以了。

此外,当我尝试打开该文件时,我会收到警告,指出该文件已损坏,Excel 将尝试打开它。我在 Google 表格上没有收到这样的警告。

0 投票
2 回答
3008 浏览

coldfusion - SpreadsheetFormatRows 格式颜色 ColdFusion

我正在使用 ColdFusion 和 SpreadsheetNew、SpreadsheetAddRows、SpreadsheetFormatRows 等函数创建 Excel 文件。根据我在这里阅读的文档,它们是颜色和 fgcolor 的属性。我有点困惑,这两者之间的区别是什么。一种是文本颜色,另一种是背景颜色吗?我一直在使用 fgcolor 来设置行的背景颜色。

我的主要问题是,根据文档,我可以提供org.apache.poi.hssf.util.HSSFColor颜色类中的任何值作为我的颜色。但是,我真的需要提供 HEX 值或 RGB。我知道 Excel 可以处理它,因为您可以在 excel 的颜色选择器中输入任何一个。有没有办法为我的行颜色输入 HEX 或 RGB 值?

谢谢你!

更新

0 投票
2 回答
2574 浏览

coldfusion - cfspreadsheet 另存为 .csv,Excel 显示“FILE.csv 的文件格式和扩展名不匹配”。

我创建了一个冷融合页面,将 MYSQL 中的客户列表输出到 CSV 文件中,以便轻松上传到 SalesForce.com

我可以生成包含所有正确信息的文件。但是,当我尝试使用 excel 打开它时出现错误:“'SalesForceDailyLeads-20160613125138.csv' 的文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非你相信它的来源,否则不要'不要打开它。你还是要打开它吗?我可以打开它(MAC 的 Excel),但在我看来,CFSpreadsheet 没有创建合法的 .csv 文件,而是制作了一个 xlsx。

如果我制作一个 XLS 文件,我不会像使用 CSV 那样有问题。这是代码、CFSpreadsheet 或 excel(对于 mac)的问题吗?我可以修复它吗?

0 投票
2 回答
455 浏览

coldfusion - SpreadsheetFormatRow 突然停止工作

我看过这篇文章,但看起来确实有解决方案。无论如何,我正在使用 ColdFusion 10 生成 Excel 电子表格。但是,当我使用 SpreadsheetFormatRow() 并传入要格式化的行时,它只执行大约 3 次然后突然停止。这是一个例子......

ColdFusion 代码

这是生成的 Excel 工作表的屏幕截图

在此处输入图像描述

为什么格式化在 X 行和单元格数后停止?如果我切换到使用 XML 格式

它工作正常。但是,我正在为我的颜色使用自定义调色板,所以我不认为切换到 XLSX 格式对我有用。当我尝试然后打电话时

我收到一条错误消息,指出 getCustomPalette() 方法未定义。

谁能帮我解决这个问题?谢谢!!!

甚至更好,因为它适用于 XML 格式,任何人都可以展示如何使用带有 XLSX(xml 格式)的自定义调色板的示例

0 投票
1 回答
670 浏览

coldfusion - SpreadSheetAddImage - 添加具有设置宽度和高度的图像

我在 ColdFusion 10 中使用 SpreadSheetAddImage 将图像添加到我的电子表格的标题中。我遇到的问题是该函数需要一个锚位置,例如,如果我想将图像从单元格 1 第 1 行运行到单元格 5 第 5 行,我将提供“1,1,5,5”作为锚参数. 但是,如果我的表格在这些单元格中有少量数据,则图像会被压缩。如何添加具有设定宽度和高度的图像?

0 投票
0 回答
321 浏览

coldfusion - ColdFusion - POI setCellStyle 不影响它的现有风格?

我为 Excel 文件创建了一个 cellStyle 以进行行条带化。我还想将任何具有数值的单元格设置为 RIGHT ALIGN。我可以通过检查单元格的值来完成此操作,如果是数字我 setCellStyle(styleRightAlign) 其中 styleRightAlign 是我右对齐单元格样式的名称。

但是,这会覆盖现有样式,并且我的单元格不再具有正确的背景颜色。它正确对齐,但我怎样才能“添加”一个单元格样式而不是覆盖现有的?

这可能吗?

我已经研究过使用CellUtil setCellStyleProperty方法,但我不确定如何在 ColdFusion 中创建它的实例,以及它是否是我需要的。

更新

所以看起来 CF 11+ 有可用的 CellUtil,但 CF 10 没有。数字。因此,我正在使用包含背景颜色的 alignRight 行条纹创建单独的样式。如果有人知道如何在不影响其现有 cellStyle 的情况下对齐单元格,我很想听听。

0 投票
0 回答
157 浏览

java - 不同 ColdFusion 版本上的 cfspreadsheet 单元格数据修剪问题

拿下面的代码...

正在读取的 XLS 文件具有包含前导和尾随空格的单元格数据。在一台 ColdFusion 服务器上,输出显示没有空格,好像<cfspreadsheet>自动修剪了所有数据。在另一台服务器上它没有。我在想也许poi.jar改变了?有没有其他人经历过这个?我找不到任何人抱怨这件事。

这个 ColdFusion 服务器似乎会自动修剪数据......

版本:2016,0,02,299200

更新级别:chf20160002.jar

这个不...

版本:10,0,19,298511

更新级别:chf10000019.jar

0 投票
2 回答
569 浏览

coldfusion - 如何在Excel工作表中显示完整的数字?

我正在使用 cfspeadsheet 将查询导出到 Excel 文件。它正在工作并创建 Excel 工作表。但是,问题是其中一列,即card_number,包含一个 15 位数字,显示如下:4.5421E+15。有没有办法可以显示完整的数字:4254218068670980

0 投票
1 回答
568 浏览

coldfusion - ColdFusion - POI Excel 工作簿格式为数字

我正在使用 ColdFusion 和 POI Workbook 创建一个 Excel 文件。该文件创建得很好,但是我有包含数值的单元格,需要存储为数字,以便 SUM 和其他函数正常工作。

我想在为基本上循环数据的excel表添加数据后调用代码,如果值为数字,则将数据格式设置为数字。这样,当我打开 Excel 文件时,我可以对该列数据执行 SUM 或任何操作。

以下是我迄今为止尝试过的,它确实“有效”,因为所有单元格都具有#EBEBEB 背景颜色,但是它们仍然有警告说“数字存储为文本”,如下所示。我怎样才能解决这个问题?

在此处输入图像描述

0 投票
1 回答
223 浏览

coldfusion - 如何防止 CF 电子表格人口挂起?

当我填充 cf 电子表格对象的行并创建一个 xls 文件时,我遇到了障碍。在我的开发服务器上,整个过程只需要大约一分钟,但在我的产品服务器上,页面在我的查询循环的第一次迭代中开始无限期地挂起。我已经在下面的代码中评论了它开始挂起的位置。

对于 qReconciled 中的每一行,循环的查询(这是连接的结果),我在电子表格中创建 3 行 - 第一个保存来自连接一侧的数据,第二个保存来自另一侧的数据的连接,第三个是空白行。

查询 qReconciled(大约有 2,200 行)没有问题;我在 SQL Server studio 中的 dev 和 prod 上运行了查询,在这两种情况下运行只需要大约一分钟。

请注意,对于 dev 和 prod 服务器,在进程运行时 CPU 被固定在 100% 或接近 100%。但是,虽然开发服务器是一个专用盒子,但产品服务器是一个虚拟机,其他 3 个虚拟机共享同一个盒子,所以我想知道这是否只是一个虚拟机内存分配问题。

我考虑过使用 Ben Nadel 的 POI Utility cfc,在这种情况下,我将创建一个新查询并以与填充电子表格相同的方式填充它(qReconciled 中每 1 行 3 行),并将查询提供给 writeSingleExcel ()。