使用C#读取/写入Excel文件(.xls / .xlsx)

时间:2012-05-02 17:51:54

标签: c# .net excel

如何在C#中读写Excel文件?我已经将Excel对象库添加到了我的项目中,但是我没有清楚地了解访问文件需要做些什么。

请帮助我理解,在解释时,请记住我对此有点新意,但我不是一个完整的新手。我经常学习,所以我并不是完全无知。

7 个答案:

答案 0 :(得分:14)

我非常喜欢使用EPPlus来执行这些类型的操作。 EPPlus是一个可以在项目中引用的库,可以在服务器上轻松创建/修改电子表格。我将它用于任何需要导出功能的项目。

Here's a nice blog entry that shows how to use the library,虽然图书馆本身应附带一些说明如何使用它的样本。

在我看来,第三方库比Microsoft COM对象更容易使用。我建议试一试。

答案 1 :(得分:8)

我使用NPOI满足我的所有Excel需求。

http://npoi.codeplex.com/

为许多常见的Excel任务提供示例解决方案。

答案 2 :(得分:1)

您可能也对http://openxmldeveloper.org/

感兴趣

答案 3 :(得分:1)

您可以使用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);

Link to the full tutorial

答案 4 :(得分:0)

如果您正在进行简单的操作并且可以将自己绑定到xlsx,那么您可以考虑自己操纵XML。我已经做到了,发现它比浏览excel库更快。

还有第三方库可以更容易使用......并且可以在MS不能使用的服务器上使用。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

如果您想要易于使用的库,可以使用 NUGET 包

  • ExcelDataReader - 读取 Excel 文件(大多数文件格式)
  • SwiftExcel - 编写 Excel 文件 (.xlsx)

请注意,这些是 3rd-Party 软件包 - 您可以免费将它们用于基本功能,但如果您想要更多功能,可能会有“专业”版本。

他们使用二维对象数组(即object[][] cells)来读取/写入数据。

相关问题