gpt4 book ai didi

coldfusion - 如何使用 ColdFusion 格式化电子表格列?

转载 作者:行者123 更新时间:2023-12-03 11:19:25 25 4
gpt4 key购买 nike

我正在使用 SpreadsheetFormatColumns() 将电子表格中的列格式化为“文本”,但我不知道如何执行此操作,livedocs 中的所有格式都是数字、货币或日期......有没有类似的

SpreadsheetFormatColumns(mySpreadsheet, {dataFormat="text"}, "1-15")

在那里?这真的让我烦恼...

谢谢

最佳答案

在 ColdFusion 9.0.1(即更新程序 1)中,如果您使用 SpreadsheetSetCellValue(),它将遵循您之前设置的格式。因此,要在填充工作表时强制将列设为文本,您可以使用 3 步过程:

  • 填充电子表格,忽略错误解释的数值。
  • 将您想要的列格式化为文本。
  • 将列的每一行中的错误值替换为正确的值,该值现在将被视为文本。

  • 这是一个示例,您可以将其复制到 .cfm 并按原样运行(需要 CF9.0.1)
    <cfscript>
    // Create a 2 column, 2 row query. The first column contains numbers or possible numbers we want formatted as text in our spreadsheet
    q = QueryNew( "" );
    QueryAddColumn( q,"NumbersAsText","VarChar",[ 01050094071094340000,"743059E6" ] );
    QueryAddColumn( q,"Text","VarChar",[ "abc","def" ] );
    // Get the column names as an array so we can get at them more easily later
    columns = q.getMetaData().getColumnLabels();
    // Create a new spreadsheet object
    sheet = SpreadSheetNew( "test" );
    // specify the column we want formatted as text
    forceTextColumnNumber = 1;
    // Use the query column names as column headers in our sheet
    SpreadSheetAddRow( sheet,q.columnList );
    // Add the data: the numbers will be inserted as numeric for now
    SpreadSheetAddRows( sheet,q );
    // Now we format the column as text
    SpreadSheetFormatColumn( sheet,{ dataformat="text" },forceTextColumnNumber );
    // Having formatted the column, add the column from our query again so the values correct
    while( q.next() )
    {
    // Skip the header row by adding one
    rownumber = ( q.currentrow + 1 );
    // Get the value of column at the current row in the loop
    value = q[ columns[ forceTextColumnNumber ] ][ q.currentrow ];
    // replace the previously added numeric value which will now be treated as text
    SpreadsheetSetCellValue( sheet,value,rownumber,forceTextColumnNumber );
    }
    // Download the object as a file
    sheetAsBinary = SpreadSheetReadBinary( sheet );
    filename = "test.xls";
    </cfscript>
    <cfheader name="Content-Disposition" value="attachment; filename=#Chr(34)##filename##Chr(34)#">
    <cfcontent type="application/msexcel" variable="#sheetAsBinary#" reset="true">

    默认情况下,我查询的第一列中的两个值都将被视为数字(第二列作为十六进制)。使用此方法都将其原始值保留为文本。

    关于coldfusion - 如何使用 ColdFusion 格式化电子表格列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081202/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com