解決 Google 試算表遇到「您輸入的內容已超過每個儲存格 50000 字元的上限。」

Google 試算表貼上文章內容,遇到「您輸入的內容已超過每個儲存格 50000 字元的上限。」錯誤訊息。解決方式透過 MySQL 查詢語法,將資料欄位內容縮短到 50000 字元內。

Calculator
Photo by Tevarak on StockSnap

錯誤狀況

產生 Google 試算表檔案前,有兩個步驟:

  1. 將資料庫 SQL 查詢結果,匯出成 Excel 報表檔案、
  2. 上傳 Excel 報表檔案,到 Google 雲端硬碟空間,自動轉換成 Google 試算表。
步驟 1:遇到「Support 32767 characters in a cell only」錯誤

匯出 Excel 遇到「Support 32767 characters in a cell only」錯誤


步驟 2:忽視「Support 32767 characters in a cell only」錯誤,直接轉換成 Google 試算表後,發現有些儲存格是空白的。手動貼上內容到  Google 試算表的儲存格,則會遇到「發生問題:您輸入的內容已超過每個儲存格 50000 字元的上限。」錯誤。

手動貼上內容到  Google 試算表的儲存格,則會遇到「發生問題:您輸入的內容已超過每個儲存格 50000 字元的上限。」錯誤


問題原因

步驟 1 因為遇到 Microsoft Excel 的儲存格內容長度的限制,造成發生「Support 32767 characters in a cell only」問題。微軟文件提到:
一個儲存格可以包含的字元總數 32,767 個字元
步驟 2 因為遇到 Google 試算表的儲存格內容長度的限制,導致「您輸入的內容已超過每個儲存格 50000 字元的上限。」問題。Google 文件提到:
當你將 Excel 文件轉換成 Google 試算表檔案時,只要儲存格中的半形字元數超過 50,000 個,Google 試算表就會移除該儲存格。

什麼是「字元」(characters)?

維基百科上字元的解釋
簡單來講就是一個漢字、假名、韓文字……,或是一個英文、其他西方語言的字母。
一個英文字「a」 、漢字「蘋」、標點符號「,」、空格「 」都會佔用一個字元。

如何計算字元數?

文字編輯軟體例如 Notepad++、Microsoft Word 等軟體,都有提供計算字元數的功能。

(1) 以 Notepad++ 為例,選取要計算字元數的文章段落,視窗下方就會顯示選取段落的總共字元數。例如下圖「Sel:50,000」
Notepad++ 視窗下方就會顯示選取段落的總共字元數

(2) 以 Microsoft Word 為例,先選取要計算字元數的文章段落(如果不選取,代表計算整篇文章的字數),再點選選單「工具」的「字數統計」
選單「工具」的「字數統計」


「統計資料」可以看到「字元數(含空白)」的結果
「統計資料」可以看到「字元數(含空白)」的結果

解決問題

方法1:如果會交叉使用 Google 試算表與 Excel 檔案,代表儲存格字元上限要調整到 32,767 個字元

  1. 資料庫 SQL 查詢加上 32,767 個字元限制,再將 SQL 查詢結果,匯出成 Excel 報表檔案、
  2. 上傳 Excel 報表檔案,到 Google 雲端硬碟空間,自動轉換成 Google 試算表。

資料庫 SQL 查詢語法範例

SELECT

SUBSTRING(`my_content_column`, 1, 32767)

FROM `my_table`


方法2:如果主要使用 Google 試算表,而不考慮使用 Excel 檔案,儲存格字元上限可以調整到 50,000 個字元

  1. 資料庫 SQL 查詢加上 50,000 個字元限制,再將 SQL 查詢結果,匯出成 CSV 檔案、
  2. 上傳 CSV 報表檔案,到 Google 雲端硬碟空間,自動轉換成 Google 試算表。

SELECT

SUBSTRING(`my_content_column`, 1, 50000)

FROM `my_table`

上方兩種方法都使用 SUBSTR 函數,將內容欄位值依照指定的字元數限制截斷。就可以通過 Google 試算表或 Excel 檔案的儲存格字元上限。缺點是如果最後一個是英文單字,可能中間會被截斷在奇怪的地方。

參考資料





留言