google sheet如果不指定範圍就append只要輸入空格就會發生推移-Appending rows with empty cells results in increasing row indentation

使用google sheet api V4 with php

google sheet如果不指定範圍就寫append程式只要輸入空格就會發生推移如下

row

 

$rangeNOW=’代墊費’;

$values = [[date(‘Y/m/d’),$item, $money, ‘ ‘ ,’努狗巴弟巴弟紀錄’]]

$body = new \Google_Service_Sheets_ValueRange([
‘values’ => $values
]);

$params = [
‘valueInputOption’ => ‘USER_ENTERED’
];

$service->spreadsheets_values->append($spreadsheetId, $rangeNOW, $body, $params);

 

只要插入新的一行,會從你上一列最後出現值的欄位下方開始插入新一列的資料,
非常靠北

後來再github找到解
(這裡尾巴解)
https://github.com/burnash/gspread/issues/537

也就是你一定要"指定範圍"

$rangeNOW=’代墊費!:A60′;
//要指定代墊費這個工作表從A60格開始 append
‘工作表名稱!欄位點’

那很靠北的,也就是你要知道目前最後一列用到哪格了,
很抱歉sheet api沒有提供這個給php,不像mysql那樣方便

所以我自己用了很愚蠢的方式,先取得這工作表資料,再算出最後一列

//這邊算取得最後一ROW是第幾ROW
$range=’代墊費’;
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$value_all = $response->getValues();//所有資料
$lastRow_number=count($value_all); //取得最後一行,例如第111行

//$lastRow_number 這個就是目前最後一ROW囉

再回到上述程式

$rangeNOW=’代墊費!A’.$lastRow_number; //這樣就是 代墊費!A60 囉

$service->spreadsheets_values->append($spreadsheetId, $rangeNOW, $body, $params);

google sheet api wiht php 好多坑

 

 

php資料夾內的所有檔案數量總和包含第一層資料夾的所有檔案數量

目前能計算總合數量
以及第一層目錄 每一個目錄的內含檔案總量(包括第N層)
第二層以及第二層後的只會列出該資料夾內的數量

 

<?php

//此程式子資料夾內的數量不對
//但是第一層資料夾總和是正確的 (包括N層的總和)
//第二層後的只會秀該資料夾內的檔案數量 不會包含第二層到第三層的~~~~到N層的總和
//只花1小時寫沒有寫很好

$dirn = 0; //目錄數
$filen = 0; //檔案數
$filen_this=0;//第一層子資料夾內檔案總合數
$filen_this_now=0;
$timeplus=0;

//打開目錄
$dir = opendir(“./"); // ./代表目前目錄
//$dir = opendir(“qq123″); // ./代表目前目錄

//列出 目錄中的文件
while($file = readdir($dir)) {
if($file!="." && $file !="..")
{
$filen_this=0;

if(is_dir($file)) {

getdirnum($file);
echo ‘<p style="background-color:#ffe58f;">’.$file."資料夾-總檔案數為:{$filen_this}<br></p>";
}

}
}

closedir($dir);
//用來統計一個目錄下的檔案和目錄的個數
function getdirnum($file) {

global $dirn;
global $filen;
global $filen_this;

global $filen_this_now;

$filen_this_now=0;
//算目前資料夾下檔案數
$FileNum=count(glob(“$file/*.*"));
$filen=$filen+$FileNum;

$filen_this=$filen_this+$FileNum;
$filen_this_now=$filen_this_now+$FileNum;

$dir = opendir($file);
echo " -“.$file."資料夾-檔案數為:{$filen_this_now}<br>";

while($filename = readdir($dir)) {

if($filename!="." && $filename !="..")
{

$filename = $file."/".$filename; //因為子資料夾要加路徑/符號

if(is_dir($filename)) {

//echo " -“.$filename."資料夾-檔案數為:{$filen_this_now}<br>";

getdirnum($filename); //遞迴,就可以檢視所有子目錄

}
// else {}
}
}

closedir($dir);

}//getdirnum()END
//echo “全部-目錄數為:{$dirn}<br>";
echo “全部-檔案數為:{$filen}<br>";

?>