- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 Excel 工作表的内容读入 C# DataTable。 Excel 工作表可以有可变数量的列和行。 Excel 工作表中的第一行将始终包含列名,但其他行可能为空白。
我在 SO 中看到的所有建议都假设存在 Microsoft.ACE.OLEDB
.我的系统上没有安装这个库,因为当我尝试其中一些解决方案时,我得到了这个错误。
Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
最佳答案
这是不是我的例子。我不记得我从哪里得到它,因为它在我的文件中。但是,这对我有用。我遇到的唯一问题是空白单元格。根据 dicussion on the ClosedXML GitHUb wiki page它与 Excel 不跟踪不受数据限制的空单元格有关。我发现,如果我将数据添加到单元格,然后删除相同的数据,则该过程有效。
public static DataTable ImportExceltoDatatable(string filePath, string sheetName)
{
// Open the Excel file using ClosedXML.
// Keep in mind the Excel file cannot be open when trying to read it
using (XLWorkbook workBook = new XLWorkbook(filePath))
{
//Read the first Sheet from Excel file.
IXLWorksheet workSheet = workBook.Worksheet(1);
//Create a new DataTable.
DataTable dt = new DataTable();
//Loop through the Worksheet rows.
bool firstRow = true;
foreach (IXLRow row in workSheet.Rows())
{
//Use the first row to add columns to DataTable.
if (firstRow)
{
foreach (IXLCell cell in row.Cells())
{
dt.Columns.Add(cell.Value.ToString());
}
firstRow = false;
}
else
{
//Add rows to DataTable.
dt.Rows.Add();
int i = 0;
foreach (IXLCell cell in row.Cells(row.FirstCellUsed().Address.ColumnNumber, row.LastCellUsed().Address.ColumnNumber))
{
dt.Rows[dt.Rows.Count - 1][i] = cell.Value.ToString();
i++;
}
}
}
return dt;
}
}
using System.Data;
using ClosedXML.Excel;
if (cell.Address.ColumnLetter=="J") // Column with date datatype
{
DateTime dtime = DateTime.FromOADate(double.Parse(cell.Value.ToString()));
dt.Rows[dt.Rows.Count - 1][i] = dtime;
}
else
{
dt.Rows[dt.Rows.Count - 1][i] = cell.Value.ToString();
}
关于excel - 使用 ClosedXML 将 Excel 工作表读入 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48756449/
我正在阅读的 Excel 表中有日期。 我喜欢做的是强制日期在 mm/dd/yyyy 有没有办法在封闭的 XML 中做到这一点。 我看了一下https://closedxml.codeplex.com
我正在做一个项目,我正在使用 ClosedXML 在 Excel 工作表中记录一些结果。 我有以下数据结构: PortTag 字典只是端口 ID 和标签的键值对(“T”、“U”、“F”或“-”) 这应
我正在使用 ClosedXml,尝试创建时出现以下错误 范围表中的一系列标题。 The cells A13 and P13 are outside the range ''SalesOrderHead
我使用 ClosedXML 生成了一个 Excel 文件,我想知道如何在单元格内执行回车? 最佳答案 您可以使用 Environment.NewLine为单元格的值添加“回车”。 关于c# - Clo
我正在尝试使用 ClosedXML 在应用程序中生成 excel 文档,但是当我尝试运行它时,我收到无法加载文件或程序集服务器错误。 Could not load file or assembly '
我可以使用 OpenXML 将图像添加到 Excel 电子表格中。 但是对于程序的其余部分,我使用 ClosedXML 添加数据。 我可以使用列和行索引在特定单元格添加数据。 如果我可以将图像添加到
我刚刚下载了 ClosedXML,用于我正在编写的一个小应用程序。在应用程序中,我从数据库加载一些数据以输出到 Excel 文件。我的本地数字格式使用逗号表示小数点。看起来 ClosedXML 无法将
我对 ClosedXML 有类似的问题,比如 one但有点不同。SetDataType 方法不起作用。例如,我有值(value)字符串 dps = "3.12.02"这不是日期也不是数字,它是有效文本
我刚刚开始使用 ClosedXML。当我使用以下代码创建新工作簿时,它会自动将“蓝色,表格样式灯 9”应用于每个工作表。我不想在工作表上使用任何样式。如何不指定样式? XLWorkbook wb =
例如我有这样的代码: DataTable table = new DataTable("Name"); table.Columns.Add("CASESENSITIVE", typeof(string
当我尝试将 ClosedXML 工作簿 (XLWorkbook) 保存到内存流时,出现“无法访问已关闭的流”。 public byte[] GetStream() {
我正在使用 closedXML从 C# 生成一个 Excel 文件,我正在尝试查看是否有设置工作表缩放级别的方法。我无法在任何文档或谷歌搜索中找到它? 有人知道怎么做吗? 最佳答案 现在可以通过 IX
当我尝试更改整个列的格式时遇到问题。 我的问题是我没有得到 XLCellValues 操作数。我可以选择 XLDataType.Text 但这不起作用。这是我的: eventSheet.Column(
我正在使用 ClosedXML 将新工作表添加到现有 Excel 文档中。它适用于普通的 Excel 文档。 但是如果 excel 文档工作表在某些单元格上包含条件格式,则会抛出错误 at Syste
我想下载一个 excel 文件并自动将文件发送到一个邮箱地址。下载文件有效,但是当我包含用于发送邮件的代码时,它会抛出一个 FileNotFoundException:'Could not find
我正在使用 C# closedxml 向工作表中添加一个公式,但它返回为不可读的内容。我认为原因是我添加到公式中的斜线,但我需要斜线来转义引号,因为我需要公式中的引号。我还能怎么做? 这是我的代码:
是否可以在 ClosedXML 中创建和存储预定义样式,以便稍后将其应用到某个范围? Just like Excel can .例如通过一个静态类: public static class Repor
我在我的脚本的其他地方使用 ClosedXML,我像这样遍历每一行并且它有效。 var workbook = new XLWorkbook(ObjectRepPath); var rows =
我有 xltx Excel 的模板,当我从它创建(手动)新文档并单击 File->Print 在 Excel 中,第一个工作表适合一页。 然后我借助 ClosedXml 从我的模板创建新文档: usi
我正在尝试将一些数据导出到 Excel 工作表 S1,其数据将在接下来的两个工作表 S2 和 S3 中显示为透视 View 。我能够创建一个单一的支点,而且效果很好。但是,当我创建两个枢轴时,生成的
我是一名优秀的程序员,十分优秀!