我有一个很大的 excel 文件(两个工作表,大约 4000 行和列到 AF)。excel表格的格式很糟糕,我无法控制它。有数百个空白列一直延伸到 XFC。
我怎样才能让 PHPExcel 根据下面的代码选择它读/写的列?我尝试使用文档所说的内容,但显然不起作用。
代码:
<?php
require('./Classes/PHPExcel/IOFactory.php');
ini_set('max_execution_time', 800);
ini_set('memory_limit', 200M);
$inputFileType = 'Excel2007';
$inputFileName = $_FILES['uploaded']['tmp_name'];
//?? this is what documentation suggested ??//
class MyReadFilter implements PHPExcel_Reader_IReadFilter {
public function readCell($column, $row, $worksheetName = '') {
// Read columns from 'A' to 'AF'
if ($column >= '0' && $column <= '32'){
return true;
}
return false;
}
}
//^^this is what documentation suggested^^//
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcelReader = $objReader->load($inputFileName);
$loadedSheetNames = $objPHPExcelReader->getSheetNames();
$objWriter …Run Code Online (Sandbox Code Playgroud) 在数据库中,我试图提取晚于指定日期的信息.我应该事先注意到日期是一种奇怪的格式:YYYYMMDDHH24MISS##where ##是一个两个字母的字符串,它定义了对我的查询无用的东西.因此,我用它substr来删除它们.
我的查询,下面,抛出以下错误,我发现原因:
[错误代码:920,SQL状态:42000] ORA-00920:无效的关系运算符
我的查询:
SELECT *
FROM table_name
WHERE to_date(substr(COLUMN_NAME,1,14), 'YYYYMMDDHH24MISS')) >=
to_date('MIN_DATE', 'YYYYMMDDHH24MISS')
Run Code Online (Sandbox Code Playgroud)
我已检查以确保正确定义日期,它们是.
我用过的例子MIN_DATE是:20140101000000
我试图根据下面的几行让我的访问数据库进入前台。我不确定为什么它不起作用,或者是否有更好的方法来做到这一点。
根据我的阅读,这应该有效:
Access.Visible = False
Access.Visible = True
Run Code Online (Sandbox Code Playgroud)
但实际上并没有将数据库带到前台。
编辑以获取更多信息:
Private Sub Form_Open(Cancel As Integer)
getStrUserName = Environ("username")
dbName = "myDB.accdb" ' database name
versionChckDB = "versionCheckDB.accdb" ' version check db name
strServer = "C:\My\Path\to\Server" ' server location string
strDesktop = "C:\My\Path\to\Local" ' desktop location string
strVersionCheck = "C:\My\Path\to\Version" ' version check location
Static acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String
If FileLocked(strDesktop & "\" & versionChckDB) Then
Dim objAccess As Access.Application
Set objAccess = GetObject(strDesktop …Run Code Online (Sandbox Code Playgroud) 我正在为用户创建一个表单,允许他们上传.csv文件和xls/xlsx文件.目前,该程序允许他们上传.csv文件,这些文件用于更新Oracle 11g我正在处理的数据库.但是,我似乎无法弄清楚如何打开,然后将xsl/xlsx文件csv对齐.我一直收到这个错误:
Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could not open uploaded.xls for reading! File does not exist, or it is not readable.' in /opt/apache/servers/planninganddesign/htdocs/LG/SLCCA/Classes/PHPExcel/Shared/OLERead.php:80 Stack trace: #0 /opt/apache/servers/planninganddesign/htdocs/LG/SLCCA/Classes/PHPExcel/Reader/Excel5.php(1164): PHPExcel_Shared_OLERead->read('uploaded.xls') #1 <DIRECTORY> (612): PHPExcel_Reader_Excel5->_loadOLE('uploaded.xls') #2 /opt/apache/servers/planninganddesign/htdocs/LG/SLCCA/update_handler2.php(12): PHPExcel_Reader_Excel5->load('uploaded.xls') #3 {main} thrown in /opt/apache/servers/planninganddesign/htdocs/LG/SLCCA/Classes/PHPExcel/Shared/OLERead.php on line 80
Run Code Online (Sandbox Code Playgroud)
这是一个很长的错误,但我认为第一行是我目前的主要问题.
update2.php(form)[我怀疑你需要这个]:
<?php require('reader.php'); ?>
<form name="file" enctype="multipart/form-data" action="update_handler2.php" method="post" >
<u>GF:</u> <input type="file" name="uploaded"><br>
<u>GF:</u> <input type="number" name="numbers"><br>
<input type="submit" …Run Code Online (Sandbox Code Playgroud) 我在Oracle 11g数据库中有一个列,其中包含日期,当前是字符串.但是,我想创建一个基于日期获取和订单的查询.我不相信我能做到这一点,除非他们是约会,而不是varchars.如何轻松有效地更改此列(7k行)?
例:
alter table TABLE alter column COLUMN date not null
Run Code Online (Sandbox Code Playgroud)
但是,我担心这会让我丢失数据.如果确实如此,我总是可以支持它,但我只想知道是否有办法绕过那个繁琐的程序.
我正在尝试命名我的x轴(见图)。

如您所见,没有打印x轴名称。但是,由于以下这一行,我的代码应该打印一个:$MyData->setSerieDescription("Labels","Range of Data");,除非我误解了用法。
码:
/* pChart library inclusions */
include("../class/pData.class.php");
include("../class/pDraw.class.php");
include("../class/pImage.class.php");
/* Create and populate the pData object */
$MyData = new pData();
$MyData->addPoints(array($LT50,$GT50_LT100,$GT100_LT150,$GT150_LT200,$GT200_LT250,$GT250_LT300,$GT300_LT350,$GT350_LT400,$GT400_LT450,$GT450),"Probe 3");
$MyData->setSerieWeight("Probe 3",2);
$MyData->setAxisName(0,"Number of Occurrences");;
$MyData->addPoints(array("Diff < 50","50 > Diff < 100","100 > Diff < 150","150 > Diff < 200","200 > Diff < 250","250 > Diff < 300","300 > Diff < 350", "350 > Diff < 400", "400 > Diff < 450", "Diff > 450"),"Labels");
$MyData->setSerieDescription("Labels","Range of Data");
$MyData->setAbscissa("Labels");
/* Create …Run Code Online (Sandbox Code Playgroud)