上传Excel并将其存储在数据库中?

2023-11-21

我想将Excel文件上传到我们的网页中,然后将相应的数据存储在数据库中。然后我想检索所有数据并以表格格式显示。我有一个代码,但使用该代码无法上传所有 Excel 文件。只能上传单一格式。

下面是该函数。但有一些限制。

 public function check_excel($filename)
        {   
            $path='./assets/uploads/excel/'.$filename;
            $this->load->library('excel');  
            $inputFileType = PHPExcel_IOFactory::identify($path);
            $objReader = PHPExcel_IOFactory::createReader($inputFileType);
            $objPHPExcel = PHPExcel_IOFactory::load($path);
            $sheet = $objPHPExcel->getSheet(0); 
            $highestRow = $sheet->getHighestRow();
            $highestColumn = $sheet->getHighestColumn();
            $xf[]='';
            $result[]='';
            $first_check='';
            $var_check=0;

            for ($row = 13; $row <= $highestRow; $row++)
            {           
                $xf[$row]=$objPHPExcel->getActiveSheet()->getCell('A'.$row)->getXfIndex(); // Get sheet index value
                if($row>13 && $row<16) //This block check first kpi data expand or not
                { 
                    if($xf[$row-1]==$xf[$row]) //check parent and child sheet index value same 
                        $first_check='false';
                    if ($row==15) 
                    {
                        if($xf[$row]==$xf[$row-1] || $xf[$row]==$xf[$row-2]) // check the grand-child sheet index value same in parent and child
                            $first_check='false';
                        else
                        {   
                            $first_check='true';
                            $a=$row-2;
                            $b=$row-1;
                            $check_kpi=$objPHPExcel->getActiveSheet()->getCell('A'.$a)->getXfIndex(); 
                            $check_unit=$objPHPExcel->getActiveSheet()->getCell('A'.$b)->getXfIndex(); 
                            $check_sub_unit=$objPHPExcel->getActiveSheet()->getCell('A'.$row)->getXfIndex(); 
                        }
                    }       
                }
                if($first_check=='true') //This block check second kpi to upto last kpi data expand or not 
                {
                    if($row>15)
                    {
                        if($var_check==1) // This block check the child data expand or not
                        {
                            if($check_unit!=$objPHPExcel->getActiveSheet()->getCell('A'.$row)->getXfIndex())
                            {
                                $result[$row]='false';
                                break;
                            }
                        }
                        if($var_check==2) // this block check the grand - child data expand or not
                        {
                            if($check_sub_unit!=$objPHPExcel->getActiveSheet()->getCell('A'.$row)->getXfIndex())
                            {
                                $result[$row]='false';
                                break;                          
                            }
                        }
                        if($xf[$row]!=$check_sub_unit)
                        {
                            if($xf[$row]!=$check_unit)
                                $var_check=1; // var_check value is one, the kpi is present
                            else
                                $var_check=2; // var_check value is two, the unit is present
                        }
                        else
                            $var_check=0; // var_check value is zero, the sub_unit is present
                    }   
                }
                else if($first_check=='false')
                {
                    $result[$row]='false';
                    break;
                }           
            }
            $return='true';
            for ($row = 13; $row <= $highestRow; $row++)
            {
                if(!empty($result[$row]))
                {
                    if($result[$row]=='false'){
                        $return='false';
                        break;
                    }                   
                }
            }
            return $return;
        }

听起来您正在使用关系数据库(例如 MySQL、Postgres 等),它使用固定列表。

您可能应该使用基于文档的数据库(例如 CouchDB、Mongo 等)。这将是最好的解决方案。

但是,如果您无法使用关系数据库,您可以使用EAV型号.

这是一个基本示例:

  1. 为实体创建表(excel文件):EntityID、ExcelFileName
  2. 为属性创建一个表(列信息):AttributeID、EntityID、AttributeName
  3. 为值创建表格(Excel 行/列):ValueID、RowNumber、AttributeID、AttributeValue

缺点是 AttributeValue 没有专门键入(它只是 varchar/text)。您可以通过向属性表添加“AttributeType”来解决此问题,然后在代码中使用该属性表来了解该列应包含什么类型的数据。但是,除非您事先知道 Excel 文件的内容/格式,否则您可能必须猜测列的类型是什么……只要 Excel 文件不混乱,这并不难。

如果您只是显示导入的数据,这可能不是什么大问题。

如果您有这样的需要,还有其他(更复杂)的方法来实现 EAV,包括带有类型列的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

上传Excel并将其存储在数据库中? 的相关文章

  • 在 PYTHON 中读取 EXCEL 时,“utf-16-le”编解码器无法解码字节

    我正在尝试读取不同语言 阿拉伯语 希腊语 意大利语 希伯来语等 的各种数量的 xls 文件 当我尝试调用 open workbook 函数时 出现如下所示的错误 不知道如何将格式设置为任何语言 Code book xlrd open wor
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • SQL Excel VBA 运行时错误 3709 无效连接

    这是我的第一个问题 欢迎提出建设性的批评 我正在尝试从 Excel VBA 查询 Access 数据库并将返回信息放入 Excel 范围中 我收到此错误 错误消息 运行时错误 3709 连接无法用于 执行此操作 在此情况下它已关闭或无效 语
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • 将 MS 转换为秒

    我发现这个公式可以用来将 MS 转换为秒 但它是为 Excel 2002 编写的 而我正在使用 2010 CONCATENATE TEXT INT B1 1000 86400 hh mm ss B1 INT B1 1000 1000 以下是
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 使用会话 php 创建 cookie?

    我使用会话来登录我网站中的用户 问题是 我想让用户remember密码 因此关闭 打开浏览器后他们不需要再次登录 我需要使用 cookie 和 session 来实现它吗 my code user POST user pass POST p
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐

  • Java - 下采样wav音频文件

    您好 我需要将 wav 音频文件的采样率从 44 1kHz 降采样到 8kHz 我必须使用字节数组手动完成所有工作 这是出于学术目的 我目前正在使用 2 个类 Sink 和 Source 来弹出和推送字节数组 一切都很顺利 直到我到达需要使
  • 访问列表或数据帧元素时括号 [ ] 和双括号 [[ ]] 之间的区别

    R 提供了两种不同的方法来访问列表或 data frame 的元素 and 两者之间有什么区别 什么时候应该使用其中一种而不是另一种 Answer recommended by R Language Collective R 语言定义可以方
  • 更好的图像着色逻辑/算法

    我正在开发一个 iOS 应用程序 用户可以通过触摸来更改图像的一部分颜色 例如茶杯 我使用 Floodfill 算法来填充颜色 以便用户必须点击茶杯来更改其颜色 效果很好 但是 最终颜色看起来与替换颜色没什么不同 考虑到对象的饱和度和亮度
  • 计算 MD5 哈希值是否比 SHA 系列函数消耗更少的 CPU 资源?

    在 标准 笔记本电脑 x86 硬件上计算 MD5 哈希值是否比 SHA 1 或 SHA 2 占用更少的 CPU 资源 我对一般信息感兴趣 而不是特定于某个芯片 UPDATE 就我而言 我有兴趣计算文件的哈希值 如果文件大小很重要 我们假设它
  • 如何在 Ubuntu 上设置 GOPATH 环境变量?我必须编辑什么文件?

    我正在尝试做一个go get go get github com go sql driver mysql 它失败并出现以下错误 package github com go sql driver mysql cannot download G
  • 比较 SQL 中的图像数据类型

    如何比较Image数据类型 我需要将存储在数据库中的文件与上传的文件进行比较但它说比较Image数据类型是不可能的我什至尝试转换为nchar CONVERT char 1000 FileData 谁能帮我 不要使用image数据类型已被弃用
  • 安卓打开pdf文件

    我正在开发一个 Android 应用程序 我必须打开一些文件 这是我使用意图的代码 public class FacturaActivity extends Activity public void downloadInvoice View
  • FORM布局如何从table切换到div?

    我注意到大多数人都在谈论使用 DIV 和 CSS 标签 文本框对 如何转换一张表 例如 table tr td td tr table
  • Java 中的自动委托

    我想向将在运行时生成的对象添加一些功能 然而 这个对象的接口非常大 并且不受我的控制 我想将对象包装在我自己的类中 该类添加了我想要的功能并将标准接口功能委托给原始对象 有没有什么方法可以在 Java 中执行此操作 而无需为每个对象创建 1
  • C++03 中默认初始化和值初始化之间的区别?

    我一直认为创建一个新对象总是会调用对象的默认构造函数 而构造函数是显式的还是由编译器自动生成的都没有区别 根据这个备受推崇的答案对于另一个问题 这在 C 98 和 C 03 之间发生了微妙的变化 现在的工作方式如下 struct B B i
  • 与 Objective-C 应用程序相比,捆绑的 Swift 库的文件大小开销是多少?

    我在我的一个项目中使用了 Swift 最后是时候将其上传到应用商店了 应用程序的大小是一个问题 因为下载更大尺寸的应用程序不是用户的选择 该应用程序的应用程序商店大小为 40MB 一直没问题 直到安卓版上传了 6MB 我已经在iOS应用程序
  • 从包含大于 Double.MaxValue 值的字符串中解析双精度值

    考虑下面的java代码 String toParse 1 7976931348623157E308 max value of a double in java double parsed Double parseDouble toParse
  • SequelizeJS 中的关联缓慢

    我正在尝试诊断使用 SequlizeJS 作为 ORM 的 Express 应用程序中某些速度变慢的原因 我有一个模型与其他 2 个模型有 2x hasMany 和 hasOne 关系 Update 我已经使用 classMethods a
  • ggmap 扩展缩放或边界

    我正在尝试解决以下问题 我使用 ggplot2 绘制岛屿地图 island get map location c lon 63 247593 lat 17 631598 zoom 14 maptype satellite islandMap
  • GROUP_CONCAT 具有不同分隔符的多个字段

    是否可以做类似的事情 GROUP CONCAT user price SEPARATOR AS items 结果是John3 99 Mike24 99 我需要的是这样的 John 3 99 Mike 24 99 价格字段基本上使用另一种类型
  • Android中读取广告包

    我正在开发一款 BLE 传感器 用于宣传制造商特定数据 有没有示例代码演示如何在 Android 中接收广告数据包并解析其有效负载 这就是我一直在寻找的 BLE 扫描 API BluetoothAdapter startLeScan Sca
  • jquery 检查元素是否有元素

    我正在使用 jquery 1 3 并尝试复制 1 4 has 功能 我需要检查 page 元素是否包含图像 如果不包含 则附加它 是不是类似 var imageid thirdimage if page has imageid undefi
  • Google Maps API:更改标记动画速度

    谷歌地图 API v3目前支持两种类型动画片 for markers 掉落和弹跳 有什么办法我可以speed up弹跳或减速掉落动画 Google Maps API 不支持动画属性或自定义 仅支持像您所说的那样选择 放置 或 弹跳 应该可以
  • 在 MySQL 中将 IP 转换为 Long

    我正在尝试使用ip2country表显示我网站上用户的国旗 我想到的最简单的方法是编写一条 SQL 语句 从会话表中获取用户并查询他们各自的 IP 是否在某个范围内 从而找出他们的国家 国旗 这很简单 但也很危险 因为当有 300 个在线用
  • 上传Excel并将其存储在数据库中?

    我想将Excel文件上传到我们的网页中 然后将相应的数据存储在数据库中 然后我想检索所有数据并以表格格式显示 我有一个代码 但使用该代码无法上传所有 Excel 文件 只能上传单一格式 下面是该函数 但有一些限制 public functi