MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › サンプルファイルの「Excelファイルアクセス」で.xlsxファイルの書き出し方は?
-
投稿者投稿
-
2017年10月7日 2:55 PM #4859kazu参加者
現在、MZを勉強させていただいています。
サンプルを開きながら機能を勉強させていただいている段階ですが、
エクセルファイルの書き出しでつまずいています。Sampleファイル内にある
「Excelファイルアクセス.mzax」を開き、(.xlsx)形式のファイルに対応させたくて、起動メソッド内のメソッド設定値 [xls] (16か所)を [xlsx] に変更してみました。
(.xlsx)形式のファイルの読み込みは可能ですが、(.xlsx)形式でファイルの書き出しができません。
下記のエラーが出てしまいます。
————-
ファイルの書き出しに失敗しました
[Excelファイルアクセス[ID:2](key:””)]ファイルに現在のブックを書き出す()
(PFComponentException:unmatched filename(.xls):c:\…….\ds7.xlsx)・・・・ds7.xlsx 書き出しファイル名・・・・
————-
(.xlsx)形式でファイルに書き出すにはどのようにすればよいでしょうか。ご教示、よろしくお願いします。
ODBCデータソース(64bit)ドライバーは設定済
MZPlatform Ver.3.5 Windows10 64bit2017年10月10日 9:18 AM #4861MZPlatformユーザー会キーマスターExcelファイルアクセスコンポーネントにて,ファイル形式を指定してファイル書き出しするためには,空ブック作成時に形式を選択します.メソッド「空ブックを作成して選択する(boolean)」を実行して,空ブックを作成しますが,引数に「true」を設定しますと,xlsx形式で出力できます.Excelファイルアクセス.mzaxでは,ID:68のファンクションコンポーネントのイベント処理内にて,「空ブックを作成して選択する(XLS形式)」を実行しておりますが,その箇所を上記のメソッドに変更していただけますでしょうか.
2017年10月11日 12:07 PM #4865kazu参加者サポートありがとうございます。
オリジナルの「Excelファイルアクセス.mzax」に
ID:68のファンクションコンポーネントの書き換えをすることで.xlsxXファイルの書き出しが可能になりました。
.xlsファイルを読み込んで.xlsxファイルで書き出しが可能です。
また、この状態で.xlsxファイルの読み込みはできますが、このまま.xlsxファイルで書き出しを行おうとするとフリーズしてしまいます。
.xls、.xlsx ともに読み込み、書き出しをする方法があれば教えていただけないでしょうか。
宜しくお願いします。2017年10月11日 1:53 PM #4866MZPlatformユーザー会キーマスターファイルを読み込むメソッド「ファイルからブックを読み込んで選択する」と書き出すメソッド「ファイルに現在のブックを書き出す」はxls形式,xlsx形式どちらにも対応しておりますが,相互に変換をするような使用法には対応しておりません.xls形式で読み込んだファイルは,xls形式でしか書き出すことができません.前回お答えした方法では,メソッド「空ブックを作成して選択する(boolean)」により,指定した形式のデータを新たに作成することになりますため,見かけ上xls形式のファイルがxlsx形式に変換されているように見えておりました.また,単純に一か所の修正を例として回答させていただきましたが,ファイル形式に関係する他の箇所の修正も必要に思います.xlsx形式で読み込んだファイルをxlsx形式で書き出した際フリーズするとのことですが,例えばファイル書き出しの処理がxls形式で出力するような処理になっておりませんでしょうか.メソッド「ファイルからブックを読み込んで選択する」と「ファイルに現在のブックを書き出す」では,ファイル名(拡張子)でファイル形式を判断いたしますので,出力する際のファイル名の拡張子がxlsとなるような処理になっておりませんでしょうか.
2017年10月12日 2:13 PM #4876kazu参加者何か大きな勘違いをしていたようです。
.xlsファイルと.xlsxファイルを相互に変換して入出力ができるものと思い込んでいました。
要は.xlsxファイルを読み込み、変更を加えてそのまま書き出したいだけです。
まだうまく行きませんが、もう少し調べてみます。また、つまずいたらご指導よろしくお願いします。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。