Maatwebsite would lost precision when export long integer data, no matter string or int storaged in database.   Implementing \Maatwebsite\Excel\Concerns\WithCustomValueBinder can solve this issue in your export class. You should change dataTypeForValue method like following.

 /** Bind value to a cell.
*
* @param Cell $cell Cell to bind value to
* @param mixed $value Value to bind in cell
*
* @return bool
*/
public function bindValue(Cell $cell, $value)
{
// sanitize UTF-8 strings
if (is_string($value)) {
$value = StringHelper::sanitizeUTF8($value);
} elseif (is_object($value)) {
// Handle any objects that might be injected
if ($value instanceof DateTimeInterface) {
$value = $value->format('Y-m-d H:i:s');
} elseif (!($value instanceof RichText)) {
$value = (string) $value;
}
} // Set value explicit
$cell->setValueExplicit($value, static::dataTypeForValue($value)); // Done!
return true;
} /**
* DataType for value.
*
* @param mixed $pValue
*
* @return string
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public static function dataTypeForValue($pValue)
{
// Match the value against a few data types
if ($pValue === null) {
return DataType::TYPE_NULL;
} elseif ($pValue === '') {
return DataType::TYPE_STRING;
} elseif ($pValue instanceof RichText) {
return DataType::TYPE_INLINE;
} elseif ($pValue[0] === '=' && strlen($pValue) > 1) {
return DataType::TYPE_FORMULA;
} elseif (is_bool($pValue)) {
return DataType::TYPE_BOOL;
} elseif (is_float($pValue) || is_int($pValue)) {
return DataType::TYPE_NUMERIC;
} elseif (preg_match('/^[\+\-]?(\d+\\.?\d*|\d*\\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {
$tValue = ltrim($pValue, '+-');
if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {
return DataType::TYPE_STRING;
} elseif ((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) {
return DataType::TYPE_STRING;
} return DataType::TYPE_STRING;
} elseif (is_string($pValue)) {
$errorCodes = DataType::getErrorCodes();
if (isset($errorCodes[$pValue])) {
return DataType::TYPE_ERROR;
}
} return DataType::TYPE_STRING;
}

The only one different is in line 60, author return  DataType::TYPE_NUMERIC

最新文章

  1. 关于移动端常用的盒模型与flex布局
  2. Flash 二进制传图片到后台Java服务器接收
  3. servlet过滤器实现维护项目
  4. OpenCV 线性混合(4)
  5. 交叉编译mips平台上valgrind
  6. MSCRM 2011/2013 单点登录 实现
  7. sap快捷搜索菜单栏
  8. 控制文本和外观------Style Binding(Style属性绑定)
  9. String、StringBuilder、StringBuffer
  10. (六)6.5 Neurons Networks Implements of Sparse Autoencoder
  11. IOS多线程加锁
  12. JavaScript(三) 数据类型
  13. 强大的Resharp插件(转)
  14. python MVC、MTV 框架介绍 Django 模板系统常用语法
  15. [转]如何查看oracle用户具有的权限和角色
  16. volatile原理解析
  17. [FAILED]Marking disk "DATA02" as an ASM disk
  18. lua 根据函数名字符串来执行函数
  19. json包含单双引号问题解决方案
  20. 20172321 2017-2018-2《Java程序设计》第三周学习总结

热门文章

  1. 一年经验Java开发0713面试
  2. integrator.setTimeout 设置一个超时时间,超过这个时间之后,扫描的 Activity 将会被 finish 。
  3. 我自己总结的sqlite的命令行命令集
  4. C# 13位时间戳(unix时间戳)
  5. 什么是 A/B 测试?
  6. Python大礼包-安装视频+pycharm编译器|Mac版本+64位+32位版本pycharm安装包+python安装|内附网盘链接带提取码
  7. PHP xml_set_character_data_handler() 函数
  8. 4.2 省选模拟赛 旅行路线 广义SAM
  9. Return Merchandise Authorization (RMA)
  10. 好用的连接池-druid