【问题标题】:Leading zeros in an extracted Excel file from database using PEAR使用 PEAR 从数据库中提取的 Excel 文件中的前导零
【发布时间】:2013-03-30 23:13:21
【问题描述】:

在我网站的管理部分有一个按钮,可以从我的数据库中提取包含数据的 Excel 文件。实际上,它是使用 PEAR 单击按钮时创建的 Excel 文件。我使用 SQL 查询从我的 SQL Server 2008 数据库中获取必要的信息。

其中一个名为“number1”的列包含一个介于 1-9999 之间的数字。我一直在寻找一种方法,当它已经没有 4 位数字时,让它在数字前面加上零,但直到现在我还没有运气。例如,如果数据库中的数字是 12,我希望它在我的 Excel 工作表中显示为 0012。

目前使用的代码如下:

if ($j == 15){
$worksheet->write($variable1, $j , $variable2[$i][$j], $text222);
    }
where $variable1 = 0; $variable2 = ("my sql query")

感谢您的帮助。

编辑:答案(S)

$number = str_pad($value, 4, '0', STR_PAD_LEFT);

或

JAGAnalyst 的答案,我在代码中实际使用的答案。

【问题讨论】:

  • 请把column的数据类型格式化成文本,然后输入0012。
  • @Santosh 不确定我是否理解。在我的数据库中,数字是 12,当提取到 Excel 时显示为 12。我的目标是在 Excel 中提取并显示为 0012,但在数据库中保持 12。
  • 我的意思是在绑定和导出数据到excel之前改变excel列的数据类型。
  • 您想更改 Excel 中的数据类型,还是仅更改在 Excel 中显示的数字格式?
  • @DavidZemens 如果我理解正确,数字的格式与它在 Excel 中显示的一样。最终,重要的是该列中的所有数字都显示为 0012、0002、0123、1234(例如,在我的数据库中,它们看起来像 12、2、123、1234。

标签: php javascript html excel pear


【解决方案1】:

或者,您还可以编辑 SQL 查询以返回四字符文本字符串而不是数字,包括替换功能,即

, CASE
WHEN Len(number1) = 1 THEN '000' + CAST(number1 AS VARCHAR(4))
WHEN Len(number1) = 2 THEN '00' + CAST(number1 AS VARCHAR(4))
WHEN Len(number1) = 3 THEN '0' + CAST(number1 AS VARCHAR(4))
ELSE CAST(number1 AS VARCHAR(4))
END AS NEW

这实际上会改变提取的值,而不是简单地改变格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多