teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

前提事項・発生している問題に追記しました。

2020/11/11 00:25

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,23 @@
1
- ### 前提・実現したいこと
1
+ ### 実現したいこと
2
2
 
3
3
  データベースから抽出されたデータを、テンプレートとして読み込んだエクセルファイルに、抽出結果を埋め込んでファイルに出力するものを作っています。
4
4
 
5
+ ### 前提事項
5
6
 
7
+ 検証に用いた2つのファイルについて、「破損していないファイル」と「破損しているファイル」の詳細について、次の通りご報告します。
8
+
9
+ 0. 両方に共通して、同じエクセルファイルのデータを「同じデータベース」にインポートし、「同じテーブルの同じ件数分のデータ」 を使用。
10
+ 0. データ容量は4237行(1.86MB)共通です。
11
+ 0. 破損していないファイルでは、条件違いで「12シート(内10シートが埋め込み対象)」を使用。エラーなし。
12
+ 0. 破損したファイルでは、条件違いで「32シート(内29シートが埋め込み対象)」を使用。
13
+ 0. 破損していないファイル(1.46MB)と破損したファイル(2.85MB)では、異なるエクセルの雛形を使用。共に正常保存できた雛形です。
14
+
6
15
  ### 発生している問題・エラーメッセージ
7
16
 
8
17
  - 出力されたファイルを開こうとすると、下記画像のように「図形描画」部分のエラーが出てしまいます。
9
18
  - 削除されているパーツは、ワークシート内に設置した図形をグループ化したものです。
10
- - ワークシートは合計で28個あり、決まってワークシート番号が「一番最後」となるシートのみ、削除されてしまいます。
19
+ - ワークシートは合計で32個あり、決まってワークシート番号が「一番最後」となるシートのみ、削除されてしまいます。
20
+ - 図形要素を使用しているワークシートは32シート中28シートで、ワークシート番号が一番最後のシートに図形要素が入っていないシートに設定したときは、ワークシート番号に依存せず**『図形要素が入っている、かつ、ワークシート番号が最後』のシートが削除**されてしまいます。
11
21
 
12
22
 
13
23
  ![イメージ説明](8342f1c65a08e808fc2e6f3c2212458a.jpeg)

1

該当のコードを確認できるようにしました。

2020/11/11 00:25

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,11 @@
12
12
 
13
13
  ![イメージ説明](8342f1c65a08e808fc2e6f3c2212458a.jpeg)
14
14
 
15
+ ### 該当のソースコード
15
16
 
17
+ 該当するソースコードを直書きしたかったのですが、長文すぎて埋め込みが出来なく、Googleのクラウドにアップしました。
18
+ [ng.php.txt](https://drive.google.com/file/d/192UMF1Q3Ec9m0L-DT7L7q_0irqZrjX2N/view?usp=sharing)
19
+
16
20
  ### 試したこと
17
21
  - ほぼ同等の動作をするプログラムで、ワークシートが8個までのものについては、このようなエラーは起こりません。
18
22
  - 今回ワークシートを2個追加したことが原因かもしれないため、元に戻したのですが、それでも発生するようになりました。
@@ -20,4 +24,7 @@
20
24
  - 念の為、メモリ使用量が不足しているだけかと思って、php.iniとmy.iniのメモリ等の設定を初期値の4倍にしてみましたが変わりませんでした。
21
25
 
22
26
  現状、ファイルを開く際に、自動修復が行われるため、別のワークシートでも使用しているので、削除された図形をコピペして対応しています。
27
+
23
- また、このエラーは作業上影響が低いため、現状の通り、手作業での対応でも問題ないのですが、エラー表示
28
+ また、このエラーは作業上影響が低いため、現状の通り、手作業での対応でも問題ないのですが、エラー表示が出るのは使用感の上で、あまり気持ち良いものではありません。是非解決したいと思っています。
29
+
30
+ よろしくお願い致します。