いつもお世話になっております。
C#の初学者です。
この度は、C#を用いて以下の【目的の動作】を行うウィンドウズフォームアプリを作成する必要が出てきました。
そこで、作成している中で以下の【困っている点】で躓いてしまったため質問を投稿させていただきました。
【開発環境】
・OS:Windows 10
・Visual Studio 2017 ver.15.7.3
・.NET ver.4.7.02556
【目的の動作】
※C#を用いて、以下のエクセル操作を行う※
[1]文字列として保存されている数字を数値に変換したい
[2]文字列として保存されている日付を"yyyy/MM/dd"の日付の書式に変換したい
[3]%の書式で保存されている数値を標準の書式に変換する(例:5.0% ⇒ 0.05) ※もしくは%のみ取って5.0% ⇒ 5.0でも可
[4]ファイルをうまく読み込めなかった際にエクセルの解放の動作が正常に行われる
【困っている点】
[1]C手作業での書式変換のような動作方法をC#で行う方法が不明。
[2]以下のコードを実行すると「Insertできません」というダイアログが表示されて実行できない
[3]以下のコードを実行すると「%が消えない上に5%⇒500%」に変換されてしまう
[4]エラーがあるとプロセスが最後まで実行されずエクセルの開放が行われない
【コード】
public partial class Form1 : Form { public Form1() { } Microsoft.Office.Interop.Excel.Application xlApp = null; Microsoft.Office.Interop.Excel.Workbooks xlBooks = null; Microsoft.Office.Interop.Excel.Workbook xlBook = null; Microsoft.Office.Interop.Excel.Sheets xlSheets = null; Microsoft.Office.Interop.Excel.Worksheet xlSheet = null; Microsoft.Office.Interop.Excel.Range xlRange = null; Microsoft.Office.Interop.Excel.Range xlCells = null; private void button1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); if (System.IO.File.Exists(openFileDialog1.FileName)) { xlApp = new Microsoft.Office.Interop.Excel.Application(); xlBooks = xlApp.Workbooks; xlBook = xlBooks.Open(openFileDialog1.FileName); xlSheets = xlBook.Worksheets; xlSheet = xlSheets[1] as Microsoft.Office.Interop.Excel.Worksheet; //[1]convert string to int /*******************************************************************/ 問題点[1]のやり方が不明 /*******************************************************************/ //[2]の問題点 convert string to date xlCells = xlSheet.Cells; xlRange = xlCells[1, 2] as Microsoft.Office.Interop.Excel.Range; for (int i = 2; i <= xlSheets[1].UsedRange.Rows.Count; i++) { xlRange = xlCells[i, 2] as Microsoft.Office.Interop.Excel.Range; xlRange = xlRange.Insert(4,"/").Insert(7, "/"); } //[3]の問題点 xlRange = xlSheet.Range["C:C"]; xlRange.Replace("%", ""); xlBook.SaveAs(@"/*保存先*/"); //[4]の問題点 System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets); xlBook.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks); xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); } else { MessageBox.Show("File does not exist. Or it is a non-compliant file."); } } }
お手数をおかけしてしまい申し訳ございませんが、どなたかお力添えの程頂けないでしょうか。
大変恐縮ですが、よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/01 13:56
2018/08/01 14:20
2018/08/01 14:35
2018/08/01 14:47
2018/08/02 13:42
2018/08/02 14:11
2018/08/02 14:33
2018/08/02 14:54