Tag: coldfusion

使用Coldfusion 9将换行符插入Excel单元格

我正在使用Coldfusion 9生成Excel电子表格。 我正在使用新function,如SpreadsheetNew(),SpreadsheetAddRow()和SpreadsheetSetCellValue()。 我想有一些单元格中的数据在单元格中包含换行符。 我试过这个没有运气: <cfset my_spreadsheet = SpreadsheetNew("My Spreadsheet","false")> <cfset cell_value = "First Line"> <cfset carr = chr(13) & chr(10)> <cfset cell_value = cell_value & carr & "Second Line"> <cfset SpreadsheetSetCellValue(my_spreadsheet, cell_value, 1, 1)> 在Excel输出中,第1行第1列显示了这一点: 第一行第二行 但是我想让它表明: 第一行 第二行 有什么想法吗? 谢谢!!

ColdFusion:如何生成电子表格而不将其另存为文件?

在ColdFusion应用程序中,我需要使用户可以将电子表格保存到硬盘上。 我已经能够通过将它们构build为XML或HTML表格,应用application/vnd.ms-excel MIMEtypes,并以.xls扩展名保存它们,从而即时生成文件。 <cfheader name="Content-Disposition" value="attachment; filename=MySpreadsheet.xls"> <cfcontent type="application/vnd.ms-excel"> 但是,当用户加载这样一个文件,他们总是会得到一个恼人的消息(由于Excel的扩展强化function ): 您尝试打开的文件“_____。xls”与文件扩展名指定的格式不同。 打开文件之前,validation该文件是否已损坏并且来自受信任的来源。 你想现在打开文件吗? 我宁愿避免这个消息。 我知道<cfspreadsheet>标记和SpreadsheetWrite()函数将生成一个不显示此消息的正确的Excel文件,但它们都需要一个参数来指示服务器上的文件将被写入的位置。 由于下载可能包含敏感信息,而且一旦将文件写入服务器后,我不能轻松执行安全性,因此我不想创build这样的文件 – 即使是暂时的。 (我知道我可以提供一个密码,但是这并不是一个理想的解决scheme,在生成Excel文件之后的业务stream程中)。 我怎样才能生成Excel文件,并提示下载没有先写入文件?

用ColdFusion导出数十万条logging

使用ColdFusion 9.0.1,我需要将数十万条数据库logging导出到Excel XLSX或CSV(首选XLSX)。 这必须按需要完成。 到目前为止,我已经尝试过使用cfspreadsheet,但是在XLSX格式中输出多于几千行时,它会扼杀。 但是,出口到XLS工作正常(当然有一个约65,000行限制)。 我有什么select导出这么多的logging? 理论上用户可能需要输出多达一百万条logging。 我也使用SQL Server 2008 R2 – 有没有办法以某种方式将logging导出到文件,然后通过CF发送文件给用户? 我有什么select? 谢谢。

将Excel电子表格导入SQL数据库(Coldfusion 9)

我正在编写一个脚本来导入一个大型的excel spreadhseet到一个SQL Server 2008数据库。 除了一个小细节之外,一切工作正常。 如果工作表中的单元格有多个选项(如<select>下拉菜单),则只会抓取选定的选项。 我想抓住单元所有可能的选项,而不仅仅是正在使用的选项(请参阅我的SQL查询为什么) 我search谷歌和S / O的答案,但我还没有遇到这种特殊情况的解决scheme。 这里是我正在使用的电子表格函数的链接 。 我不能向你展示excel表格,但假设表格的遍历是正确的(我已经testing过了)。 这是我的代码: <cfspreadsheet action="read" src="spreadsheet.xlsx" name="sheet"> <cfoutput> #sheet.rowcount-3# <cfloop from="2" to="#sheet.rowcount-3#" index="row"> <cfquery datasource="Questions" result="rState"> INSERT INTO States ( State, StateAbbr ) VALUES ( <cfqueryparam cfsqltype="cf_sql_varchar" value="#SpreadsheetGetCellValue(sheet,row,1)#">, <cfqueryparam cfsqltype="cf_sql_varchar" value="#SpreadsheetGetCellValue(sheet,row,2)#"> ) </cfquery> #SpreadsheetGetCellValue(sheet,row,1)#<br /> #SpreadsheetGetCellValue(sheet,row,2)#<br /> <cfloop from="3" to="15" index="col"> <!— multi row […]

cfSpreadsheet 2位数年份

在ColdFusion 11中,我使用cfSpreadsheet将.xls文件转换为查询对象。 以下是我的演示电子表格的屏幕截图: 我使用这段代码来创build查询对象: <cfspreadsheet action="read" src="demo_spreadsheet.xls" excludeHeaderRow="true" headerrow="1" query="demo_query"/> <cfdump var="#demo_query#"> …我得到这些结果: 请注意,电子表格中的所有4位数年份现在都是2位数年份? 当我去使用这个代码输出查询对象中的数据时: <ul> <cfoutput query="demo_query"> <li>#name# – #dateformat(start_date, 'medium')#</li> </cfoutput> </ul> …我得到下面的输出(好吧,我是新来的,所以我不能发布两个以上的屏幕截图,所以你不得不相信我在这个复制/粘贴): 阿尔法 – 2007年1月1日 布拉沃 – 1972年2月2日 查理 – 2017年3月3日 三angular洲 – 1984年4月4日 回声 – 2029年12月31日 Foxtrot – 1930年1月1日 高尔夫 – 1930年1月1日 1907年现在是2007年,1917年现在是2017年,1929年现在是2029年,2030年现在是1930年。看来,1930年1月1日之前的任何一年的年份被认为是20xx年,而2029年12月31日之后的年份被认为是19xx年。 我错过了什么吗? 我认为我们用2000年数字来看待这种情况。 有没有一个简单的设置,我有不正确的地方? 我已经Google了谷歌这个问题,我什么都找不到。 任何build议将是最受欢迎的。

当导出到Microsoft Excel(2007)时,ColdFusion(9)在数字后神奇地移除字符“D”和“F”

以下是一些示例代码片段: theSheet = SpreadsheetNew("Rates","True"); SpreadsheetAddRow(theSheet,"4A,4B,4C,4D,4E,4F,4G,4H,4I,4J"); SpreadsheetAddRow(theSheet,"4K,4L,4M,4N,4O,4P,4Q,4R,4S,4T"); SpreadsheetAddRow(theSheet,"4U,4V,4W,4X,4Y,4Z,4D4,4F4"); 和 <cfheader name="content-disposition" value="attachment; filename=#GetTickCount()#.xlsx"> <CFHEADER NAME="Expires" VALUE="#now()#"> <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#SpreadsheetReadBinary(theSheet)#"/> 问题是“4D”和“4F”(而不是其他)丢失了“D”和“F”,并被格式化为一个数字。 我试过这个: formatText = StructNew(); formatText.dataformat="@"; SpreadsheetFormatColumns(theSheet,formatText,"1-10"); 我证实,这将Excel中的格式设置为“文本”,但现在我只是在文本格式的单元格中看到数字4! 我也尝试过使用'字符,但是当它在Excel中打开时,它只是显示'而不是字面化单元格。 这很奇怪, 有人有什么想法?

使用ColdFusion条件格式化Excel文件

我正在使用cfscript spreadsheetNew方法dynamic构build电子表格。 即 <cfscript> downloadDoc = spreadsheetNew("spreadSheetName"); spreadsheetAddRow(downloadDoc,"spreadsheetCols"); …. </cfscript> 我正在构build的其中一列包含一个公式,用于显示用户键入空白列的值与当前值(不同列中的值)之间的百分比差异。 我build立这个的用户请求,我添加条件格式来改变公式单元格的颜色的基础上的价值(即如果变化大于20%或小于-20%的单元格应该是红色)。 由于影响公式的值之一是由用户键入的,颜色变化将需要在Excel中发生,而不是在我的函数中。 在Excel中很容易,只是不知道如何将其构build到由cfml生成的Excel文件中。 我的问题是,有没有人知道这是可能的使用cfml(通过cfscript或cfspreadsheet标签),以及如何做到这一点? 我没有find任何东西用谷歌search,而searchcfdocs.org没有任何改变。

ColdFusion 8总是打开.XLS,需要.XLSX

我正在使用ColdFusion 8.做这样的事情: <cfheader name="content-disposition" value="attachment; filename=abc.xlsx"> <cfcontent type="application/msexcel"> <html> 但是我得到一个像abc.xlsx.XLS文件。 我试图得到一个XLSX的原因是因为有时XLS版本是如此之大,Office 2007被卡住打开或长途跋涉。 现在只有解决方法是等待,在Office 2007中打开XLS ,保存为.XLSX ,然后再打开。 任何帮助表示赞赏!

如何使用ColdFusion创buildxlsx文件

免责声明:我是新入Coldfusion。 我正在尝试创build一个包含图像和多个选项卡的Excel 2010文档。 我已经能够得到这个输出到XLS,但我不能把图像到文件中。 我一直无法find如何正确创buildXLSx文件的完整示例。 我宁愿学习正确的方式,以后养成自己的坏习惯,而不是只养成坏习惯。 这里是一个例子: <!— Make CF export to Excel —> <!— This will create a XLS file —> <!— <cfheader name="Content-Disposition" value="attachment; filename=#URL.TRNo#_image.xls"> <cfcontent type="application/vnd.msexcel"> —> <!— This does not work to create an XLSX file —> <cfheader name="Content-Disposition" value="inline; filename=#URL.TRNo#_image.xlsx"> <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"> <cfparam name="URL.TRNo" default="AD0310"> <cfoutput> <?xml version="1.0"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" […]

ColdFusion电子表格内存问题

我正在使用ColdFusion将相当数量的行(大约1000),大量列(大约300)导出到Excel。 这是一个多页Excel文件,其中至less有两个具有大量列的工作表。 使用cfspreadsheet会引发Java堆错误。 更新JVM设置值显示没有改进。 导出到Excel而不导致Java堆错误的最佳方式是什么? 编辑:我已经尝试了几种方法来解决程序内的问题。 我正在使用cfsavecontent中的xml工作簿来构build多个工作表,并使用cfcontent呈现结果。 在这种情况下,cfcontent可能会利用大量内存导致堆空间错误。 <cfsavecontent variables="REQUEST.xmlData"> <cfoutput> <xml version="1.0"?> <?mso-application progid="Excel.sheet"?> <Workbook> …other contents </Workbook> </cfoutput> </cfsavecontent> 对于第二个解决方法,我使用querynew来构build内容并使用<Cfspreadsheet action="write">将最终结果转储到excel中。 对于后面的表单,我正在使用<cfspreadsheet action="update"> 。 最终目标是使用<cflocation url="excelPath">来为excel服务,但是在这种情况下,cfspreadsheet更新永远丢失内存错误。 如果更新jvm不是一种select,您还有什么其他方法可以解决内存问题?