如何读取Excel单元格值

本文关键字:Excel 单元格 读取 何读取 | 更新日期: 2023-09-27 18:04:10

寻求如何从Excel中读取一些单元格值的帮助。我想我应该从一个开始。

Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0, false, 5, "", "", false,    Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
string currentSheet = "Sheet1";
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
var cell = (Excel.Range)excelWorksheet.Cells[1, 1];

虽然我运气不好。我希望能够读取单元格的值并将其存储在某个地方,然后每隔几秒钟检查一次值

如何读取Excel单元格值

你真的想看看EPPLus:http://epplus.codeplex.com/

它可以从NuGet中获得,在您的项目中使用。这是迄今为止c#和excel文档之间最简单、最干净的接口方式。顺便说一下,它也是免费的。

教程:http://www.codeproject.com/Articles/680421/Create-Read-Edit-Advance-Excel-Report-in 1

private DataTable WorksheetToDataTable(ExcelWorksheet oSheet)
{
int totalRows = oSheet.Dimension.End.Row;
int totalCols = oSheet.Dimension.End.Column;
DataTable dt = new DataTable(oSheet.Name);
DataRow dr = null;
for (int i = 1; i <= totalRows; i++)
{
    if (i > 1) dr = dt.Rows.Add();
    for (int j = 1; j <= totalCols; j++)
    {
        if (i == 1)
            dt.Columns.Add(oSheet.Cells[i, j].Value.ToString());
        else
            dr[j - 1] = oSheet.Cells[i, j].Value.ToString();
    }
}
return dt;

}

读取EPPLus中的所有列和行。

类似于

Worksheet sheet = excelWorkbook.Worksheets["Sheet1"] as Worksheet;
Range rng = sheet.Cells[1,1] as Range;
object value = rng.Value;

…你想怎么做就怎么做。试试这个,如果你得到任何错误让我知道。

stringdoubleDateTimeboolint中的任意一个值。

除了int s之外,这些都是不言自明的。int值表示可能的不同错误码,例如#VALUE!

(顺便说一下,我建议使用NetOffice,它可以通过NuGet免费获得,而不是引用Excel PIA,来引用Excel对象模型。优点是,当您部署时,您不需要绑定到特定版本的Excel)

您需要检索单元格的.Value.Value2属性:

if (cell.Value2 == null)
    // cell is blank
else if(cell.Value2 is string)
    // cell is text
else if (cell.Value is double)
    // cell is number;
else if (cell.Value2 is double)
    // cell is date

注意最后两个if, .Value2对数字和日期都返回double类型,而.Value只对数字返回double类型。检查的顺序很重要。