Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.xls和.ods文件读取数据_C#_Asp.net - Fatal编程技术网

C# 从.xls和.ods文件读取数据

C# 从.xls和.ods文件读取数据,c#,asp.net,C#,Asp.net,有没有一种方法可以从excel中读取数据并打开office电子表格,然后将其保存到数据集或数组之类的临时存储中?我遇到了一个优秀的数据阅读器(http://exceldatareader.codeplex.com/),但它仅在用户的计算机上安装了Excel时才起作用。我们的一些用户只有开放式Office(其他用户没有) 这里有一个简单的方法,使用(我可以热情推荐的)手动将其转换为数据表: DataTable tbl = new DataTable(); var pck = new OfficeO

有没有一种方法可以从excel中读取数据并打开office电子表格,然后将其保存到数据集或数组之类的临时存储中?我遇到了一个优秀的数据阅读器(http://exceldatareader.codeplex.com/),但它仅在用户的计算机上安装了Excel时才起作用。我们的一些用户只有开放式Office(其他用户没有)

这里有一个简单的方法,使用(我可以热情推荐的)手动将其转换为
数据表

DataTable tbl = new DataTable();
var pck = new OfficeOpenXml.ExcelPackage();
pck.Load(new System.IO.FileInfo(@"C:\Temp\ExcelFile.xlsx").OpenRead());
if (pck.Workbook.Worksheets.Count != 0)
{
    var sheet = pck.Workbook.Worksheets.First();
    var hasHeader = false; // adjust accordingly '
    foreach (var firstRowCell in sheet.Cells[1, 1, 1, sheet.Dimension.End.Column])
    {
        tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column));
    }
    var startRow = hasHeader ? 2 : 1;
    for (var rowNum = startRow; rowNum <= sheet.Dimension.End.Row; rowNum++)
    {
        var wsRow = sheet.Cells[rowNum, 1, rowNum, sheet.Dimension.End.Column];
        tbl.Rows.Add(wsRow.Select(cell => cell.Text).ToArray());
    }
}
DataTable tbl=newdatatable();
var pck=newOfficeOpenXML.ExcelPackage();
Load(new System.IO.FileInfo(@“C:\Temp\ExcelFile.xlsx”).OpenRead();
如果(pck.Workbook.Worksheets.Count!=0)
{
var sheet=pck.Workbook.Worksheets.First();
var hasHeader=false;//相应地调整'
foreach(sheet.Cells[1,1,1,sheet.Dimension.End.Column]中的var firstRowCell)
{
添加(hashreader?firstRowCell.Text:string.Format(“Column{0}”,firstRowCell.Start.Column));
}
var startRow=hasHeader?2:1;
for(var rowNum=startRow;rowNum cell.Text).ToArray();
}
}
最初是我自己发布的(VB.NET)