Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PEAR从数据库中提取Excel文件中的前导零_Php_Javascript_Html_Excel_Pear - Fatal编程技术网

Php 使用PEAR从数据库中提取Excel文件中的前导零

Php 使用PEAR从数据库中提取Excel文件中的前导零,php,javascript,html,excel,pear,Php,Javascript,Html,Excel,Pear,在我的网站的管理部分有一个按钮,可以从我的数据库中提取包含数据的Excel文件。实际上,它是一个Excel文件,使用PEAR单击按钮后创建。我使用SQL查询从SQL Server 2008数据库中获取必要的信息 其中一个名为“number1”的列包含范围为1-9999的数字。我一直在寻找一种方法,当它还没有4位数字的时候,让它在数字前面加上零,但直到现在我还没有运气。例如,如果数据库中的数字是12,我希望它在我的Excel工作表中显示为0012 目前使用的代码如下: if ($j == 15){

在我的网站的管理部分有一个按钮,可以从我的数据库中提取包含数据的Excel文件。实际上,它是一个Excel文件,使用PEAR单击按钮后创建。我使用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")
谢谢你的帮助

编辑:答案


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

或者,您也可以编辑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

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

请将列的数据类型格式化为文本,然后放入0012。@Santosh我不确定我是否理解。在我的数据库中,数字是12,提取到Excel中时显示为12。我的目标是将其提取并在Excel中显示为0012,但在数据库中保留为12。我的意思是,在将数据绑定并导出到Excel之前,请更改Excel列的数据类型。是否要更改Excel中的数据类型,或仅更改Excel中显示的数字格式?@DavidZemens如果我理解正确,在Excel中显示的数字格式。最终,重要的是,该列中的所有数字都显示为0012000201231234(例如,在我的数据库中,它们看起来像12、21231234)。
, 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