20

C# で Excel ファイルを読み書きするにはどうすればよいですか? 既に Excel オブジェクト ライブラリをプロジェクトに追加しましたが、ファイルにアクセスするために何をする必要があるかについて十分に明確な説明が得られません。

理解するのを手伝ってください。説明するときは、私がこれに慣れていないことを覚えておいてください。しかし、私は完全な初心者ではありません。私はよく勉強するので、完全に無知というわけではありません。

4

7 に答える 7

14

私は、EPPlusを使用してこれらのタイプのアクションを実行することの大ファンです。EPPlus は、プロジェクトで参照できるライブラリで、サーバー上でスプレッドシートを簡単に作成/変更できます。エクスポート機能が必要なプロジェクトに使用します。

ライブラリの使用方法を示す素敵なブログ エントリを次に示しますが、ライブラリ自体には使用方法を説明するサンプルが付属しているはずです。

私の意見では、サード パーティのライブラリは、Microsoft COM オブジェクトよりもはるかに使いやすいものです。試してみることをお勧めします。

于 2012-05-02T19:44:59.000 に答える
8

私は Excel のすべてのニーズに NPOI を使用しています。

http://npoi.codeplex.com/

多くの一般的な Excel タスクの例のソリューションが付属しています。

于 2012-05-02T19:29:35.480 に答える
2

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);

完全なチュートリアルへのリンク

于 2012-05-02T19:36:50.703 に答える
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();  
于 2019-02-27T10:09:03.347 に答える
0

単純な操作を行っていて、自分自身を xlsx に関連付けることができる場合は、自分で XML を操作することを検討できます。私はそれを行って、Excel ライブラリをグロッキンするよりも高速であることがわかりました。

使いやすいサードパーティのライブラリもあります...そして、MSでは使用できないサーバーで使用できます。

于 2012-05-02T19:25:37.427 に答える