質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

4018閲覧

Unityでアプリ外部のxlsxファイルを読み込みたい

Yamaimo_Misoni

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/03/25 02:16

編集2017/03/25 15:42

###前提・実現したいこと
Unity5.5.1(C#)を使って、クイズを出題するWindows向けゲームアプリを作っています。
出題される問題を使用者が管理しやすいよう、問題のデータはExcelファイル(.xlsx)で、またAssetsの中ではなく外部ファイルとして持っておきたいと思っています。

###発生している問題・エラーメッセージ
デバッグ中は問題なく動くものの、Windowsアプリ化すると読み込まれず、動きません。
追記:以下にあるソースコードのworkbookを宣言するところでエラーが起きており、try-catchで拾ってみたところ、エラーコードは「Codepage 437 not supported」でした。output_logのエラーメッセージは以下のようになっています。

NotSupportedException: CodePage 437 not supported at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in <filename unknown>:0 at ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToString (System.Byte[] data, Int32 count) [0x00000] in <filename unknown>:0 at ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToStringExt (Int32 flags, System.Byte[] data) [0x00000] in <filename unknown>:0 at ICSharpCode.SharpZipLib.Zip.ZipInputStream.GetNextEntry () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) ICSharpCode.SharpZipLib.Zip.ZipInputStream:GetNextEntry () at NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource..ctor (ICSharpCode.SharpZipLib.Zip.ZipInputStream inp) [0x00000] in <filename unknown>:0 at NPOI.OpenXml4Net.OPC.ZipPackage..ctor (System.IO.Stream filestream, PackageAccess access) [0x00000] in <filename unknown>:0 at NPOI.OpenXml4Net.OPC.OPCPackage.Open (System.IO.Stream in1) [0x00000] in <filename unknown>:0 at NPOI.Util.PackageHelper.Open (System.IO.Stream is1) [0x00000] in <filename unknown>:0 at NPOI.XSSF.UserModel.XSSFWorkbook..ctor (System.IO.Stream is1) [0x00000] in <filename unknown>:0 at WholeQuizManager.loadFiles () [0x00000] in <filename unknown>:0 at WholeQuizManager.Start () [0x00000] in <filename unknown>:0

###該当のソースコード
問題ファイルは、デバッグ中は.プロジェクトの直下(.slnや.csprojがあるところ、ビルドするとアプリが生成されるところ)に「問題」フォルダを、以下その中に「3択」フォルダ、問題ファイル.xlsxを置いています。
アプリ化したときは、アプリがあるフォルダに「問題」フォルダを置いています(_Dataフォルダと並列)。
NPOIは2.1.3.1をAssetsフォルダに導入しています。

C#

1using (Stream fileStream = new FileStream(path, FileMode.Open)) { 2 IWorkbook workbook = new XSSFWorkbook(fileStream); 3……

###試したこと
問題ファイルやフォルダの名前を日本語から英語にしたのではダメでした。
制作当初は問題ファイルをResourceフォルダに入れており、そのときは拡張子を.xlsxから.xmlに変えておかないと反応しませんでした。なので、外部に移したときに.xmlを読み込むようにすることも試しましたが、こちらもデバッグ中はうまくいって、アプリ化すると読み込めませんでした。
同じ方法で.txtファイルが読めるかどうかは、やり方を知らなかったので試していません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

対象のブックを Excel で開き、名前を付けて保存ダイアログの「保存」の左となりにある「ツール」をクリックし、「Web オプション」の「エンコード」を確認してみてください。
そこを直してもダメなら、CSV を検討してみてください。CSV も Excel で開くことができます。

投稿2017/03/26 00:13

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yamaimo_Misoni

2017/03/26 02:22

ご教授いただきありがとうございます。 Unicode系、日本語系のすべてのエンコードを試してみましたが、どれも動かなかったので、csvで動かすことにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問