C#仪器数据文件解析Excel文件的方法浅析
在C#编程中,经常需要从仪器导出的数据文件进行Excel格式的解析。本文将针对xls和xlsx两种常见的Excel文件格式,分别进行简单的介绍。
Excel文件的格式说明
Excel文件主要包括两个文件格式,即xls和xlsx。其中,xls文件是Excel 97-2003版本的二进制文件格式,而xlsx文件是Excel的Office Open XML文件格式。在C#中解析xls或xlsx文件,一般需先引用Interop.Excel库。
解析xls格式的Excel文件
对于xls格式的Excel文件,可以使用Microsoft.Office.Interop.Excel库进行解析。下面给出一个简单的代码示例:
using System.Data.OleDb;
using Excel = Microsoft.Office.Interop.Excel;
// ...
public void ParseXlsFile(string filePath)
{
Excel.Application app = new Excel.Application();
Excel.Workbook book = app.Workbooks.Open(filePath);
Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets[1];
Excel.Range range = sheet.UsedRange;
string[,] data = new string[range.Rows.Count, range.Columns.Count];
for (int i = 0; i < range.Rows.Count; i++)
{
for (int j = 0; j < range.Columns.Count; j++)
{
data[i, j] = (range.Cells[i+1, j+1] as Excel.Range).Value2.ToString();
}
}
book.Close();
app.Quit();
// Do something with the data array...
}
在以上代码中,我们首先创建了一个Excel Application对象,然后打开Excel文件,获取其第一个Worksheet,并查询其数据范围。通过遍历数据范围,我们可以得到文件中的所有数据。其中,数据是以二维数组的形式存储的,可以根据需求进行后续的数据处理。
解析xlsx格式的Excel文件
对于xlsx格式的Excel文件,我们可以使用OpenXml库进行解析。下面给出一个简单的代码示例:
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
// ...
public void ParseXlsxFile(string filePath)
{
using (SpreadsheetDocument doc = SpreadsheetDocument.Open(filePath, false))
{
WorkbookPart workbookPart = doc.WorkbookPart;
Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().FirstOrDefault();
Worksheet worksheet = ((WorksheetPart)workbookPart.GetPartById(sheet.Id)).Worksheet;
SheetData sheetData = worksheet.Elements<SheetData>().First();
string[,] data = new string[sheetData.ChildElements.Count, worksheet.Descendants<Row>().First().Descendants<Cell>().Count()];
int row = 0;
foreach (Row r in sheetData.ChildElements)
{
int col = 0;
foreach (Cell c in r.ChildElements)
{
data[row, col++] = c.InnerText;
}
row++;
}
// Do something with the data array...
}
}
在以上代码中,我们首先使用OpenXml库打开Excel文件。然后查询WorkbookPart、WorksheetPart、SheetData等元素,并根据需要遍历其子元素获取数据。在此,我们同样使用二维数组的形式存储数据。
示例说明
假设我们有一个名为“data.xls”的Excel文件,其中包含以下数据:
ID | Name | Age | Gender |
---|---|---|---|
1 | Tom | 18 | M |
2 | Amy | 20 | F |
3 | John | 22 | M |
现在我们希望使用C#将数据读取出来,存储到一个数组中。可以使用以上介绍的方法,代码如下:
string filePath = "data.xls";
ParseXlsFile(filePath);
如果我们有一个名为“data.xlsx”的Excel文件,其中包含以下数据:
ID | Name | Age | Gender |
---|---|---|---|
1 | Tom | 18 | M |
2 | Amy | 20 | F |
3 | John | 22 | M |
那么我们可以使用以下代码将数据读取出来:
string filePath = "data.xlsx";
ParseXlsxFile(filePath);
以上就是关于C#解析Excel文件的简单介绍。通过以上方法,您可以快速地将Excel文件中的数据读取出来,并存储到您的程序中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx) - Python技术站