C# で Excel ファイルを読み書きするにはどうすればよいですか? 既に Excel オブジェクト ライブラリをプロジェクトに追加しましたが、ファイルにアクセスするために何をする必要があるかについて十分に明確な説明が得られません。
理解するのを手伝ってください。説明するときは、私がこれに慣れていないことを覚えておいてください。しかし、私は完全な初心者ではありません。私はよく勉強するので、完全に無知というわけではありません。
私は、EPPlusを使用してこれらのタイプのアクションを実行することの大ファンです。EPPlus は、プロジェクトで参照できるライブラリで、サーバー上でスプレッドシートを簡単に作成/変更できます。エクスポート機能が必要なプロジェクトに使用します。
ライブラリの使用方法を示す素敵なブログ エントリを次に示しますが、ライブラリ自体には使用方法を説明するサンプルが付属しているはずです。
私の意見では、サード パーティのライブラリは、Microsoft COM オブジェクトよりもはるかに使いやすいものです。試してみることをお勧めします。
Excel Automation を使用できます (基本的には COM Base のものです)。
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Open("1.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
**Reading the Excel File:**
string filePath = @"d:\MyExcel.xlsx";
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(filePath);
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
Excel.Range xlRange = xlWorkSheet.UsedRange;
int totalRows = xlRange.Rows.Count;
int totalColumns = xlRange.Columns.Count;
string firstValue, secondValue;
for (int rowCount = 1; rowCount <= totalRows; rowCount++)
{
firstValue = Convert.ToString((xlRange.Cells[rowCount, 1] as Excel.Range).Text);
secondValue = Convert.ToString((xlRange.Cells[rowCount, 2] as Excel.Range).Text);
Console.WriteLine(firstValue + "\t" + secondValue);
}
xlWorkBook.Close();
xlApp.Quit();
**Writting the Excel File:**
Excel.Application xlApp = new Excel.Application();
object misValue = System.Reflection.Missing.Value;
Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(misValue);
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "ID";
xlWorkSheet.Cells[1, 2] = "Name";
xlWorkSheet.Cells[2, 1] = "100";
xlWorkSheet.Cells[2, 2] = "John";
xlWorkSheet.Cells[3, 1] = "101";
xlWorkSheet.Cells[3, 2] = "Herry";
xlWorkBook.SaveAs(filePath, Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close();
xlApp.Quit();
単純な操作を行っていて、自分自身を xlsx に関連付けることができる場合は、自分で XML を操作することを検討できます。私はそれを行って、Excel ライブラリをグロッキンするよりも高速であることがわかりました。
使いやすいサードパーティのライブラリもあります...そして、MSでは使用できないサーバーで使用できます。