使用C#读取/写入Excel文件(.xls/.xlsx)
如何在C#中读取和写入Excel文件?我已经将Excel对象库添加到我的项目中,但是我没有得到足够清晰的描述,说明访问这些文件需要做什么使用C#读取/写入Excel文件(.xls/.xlsx),c#,.net,excel,C#,.net,Excel,如何在C#中读取和写入Excel文件?我已经将Excel对象库添加到我的项目中,但是我没有得到足够清晰的描述,说明访问这些文件需要做什么 请帮助我理解,在解释的时候,请记住我是个新手,但我不是一个完全的新手。我学习很多,所以我并非完全无知。如果您正在进行简单的操作,并且可以将自己绑定到xlsx,那么您可以自己研究如何操作XML。我已经做了,并且发现它比摸索excel库要快 还有一些第三方LIB更易于使用。。。并且可以在MS无法使用的服务器上使用。我使用NPOI满足所有Excel需求 提供了许多
请帮助我理解,在解释的时候,请记住我是个新手,但我不是一个完全的新手。我学习很多,所以我并非完全无知。如果您正在进行简单的操作,并且可以将自己绑定到xlsx,那么您可以自己研究如何操作XML。我已经做了,并且发现它比摸索excel库要快
还有一些第三方LIB更易于使用。。。并且可以在MS无法使用的服务器上使用。我使用NPOI满足所有Excel需求
提供了许多常见Excel任务的示例解决方案 您可以使用Excel自动化(它基本上是一种基于COM的工具),例如: 我非常喜欢使用来执行这些类型的操作。EPPlus是一个库,您可以在项目中引用它,并在服务器上轻松创建/修改电子表格。我将它用于任何需要导出功能的项目 ,尽管库本身应该附带一些示例来解释如何使用它 在我看来,第三方库比Microsoft COM对象更易于使用。我建议尝试一下。
**阅读Excel文件:**
**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();
字符串文件路径=@“d:\MyExcel.xlsx”;
Excel.Application xlApp=新的Excel.Application();
Excel.Workbook xlWorkBook=xlApp.Workbooks.Open(文件路径);
Excel.Worksheet xlWorkSheet=(Excel.Worksheet)xlWorkBook.Worksheets.get_项(1);
Excel.Range xlRange=xlWorkSheet.UsedRange;
int totalRows=xlRange.Rows.Count;
int totalColumns=xlRange.Columns.Count;
字符串firstValue,secondValue;
对于(int rowCount=1;rowCount,如果您想要易于使用的库,您可以使用NUGET软件包:
- ExcelDataReader-读取Excel文件(大多数文件格式)
- SwiftExcel-编写Excel文件(.xlsx)
请注意,这些是第三方软件包-您可以免费将其用于基本功能,但如果您需要更多功能,可能会有“pro”版本
他们使用二维对象数组(即object[][]单元格
)来读取/写入数据。这里是一个起点。但是您需要在服务器上安装office dll。EPPLus使用OOXML直接读取和写入文件,这非常好。不要忘记以下条件:“EPPlus是一个.net库,它使用Open Office Xml格式(xlsx)读取和写入Excel 2007/2010文件。”因此.xls文件将无法工作。
**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();