如何读取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];
虽然我运气不好。我希望能够读取单元格的值并将其存储在某个地方,然后每隔几秒钟检查一次值
你真的想看看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;
…你想怎么做就怎么做。试试这个,如果你得到任何错误让我知道。
string
、double
、DateTime
、bool
或int
中的任意一个值。
除了int
s之外,这些都是不言自明的。int
值表示可能的不同错误码,例如#VALUE!
您需要检索单元格的.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类型。检查的顺序很重要。