NPOI DLL会识别.xlsx文件吗?
目前我正在使用NPOI 1.2.5版本的DLL for Microsoft Excel 97-2003,但我也需要访问Excel扩展表.xlsx.
NPOI会支持上述吗?
代码段:
static void Main(string[] args) {
XSSFWorkbook xssfwb;
using(FileStream file=new FileStream(
@"C:\Users\347702\Desktop\Hello.xlsx",
FileMode.Open, FileAccess.Read)) {
xssfwb=new XSSFWorkbook(file);
}
ISheet sheet=xssfwb.GetSheet("sheet1");
sheet.GetRow(1048576);
Console.WriteLine(sheet.GetRow(1048576).GetCell(0).StringCellValue);
}
Run Code Online (Sandbox Code Playgroud) 我们刚开始使用NPOI组件.
我们遇到了设置ICellStyle属性的FillForegroundColor的问题.
ICellStyle HeaderCellStyle = xssfworkbook.CreateCellStyle();
HeaderCellStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.RED.index;
Run Code Online (Sandbox Code Playgroud)
FillForegroundColor期望类型为short.
我们如何设置不同的颜色而不是在HSSFColor中使用颜色.
我们需要设置"RGB192:0:0"以及如何为ICellStyle属性FillForegroundColor执行此操作
Colud有人通过一些例子来帮助我们吗?
我正在使用NPOI打开XLS文件,然后对XLS文件添加一些修改.最后我想将其保存为XLSX文件.
我正在使用此代码将其保存为XLS文件:
using (var fs = new FileStream(Name, FileMode.Create, FileAccess.Write))
{
wb.Write(fs);
}
Run Code Online (Sandbox Code Playgroud)
是否可以在C#中使用NPOI将此XLS文件保存为XLSX文件?
在此先感谢您的回复
我有一个SSIS包,它使用脚本任务用来自各种不同文件类型(包括excel)的数据填充数据表.
我正在使用NPOI读取Excel中的数据,并将NPOI.dll文件放在与SSIS包相同的文件夹中,并将其作为脚本任务中的引用添加.对于NPOI,我是一个Noob,所以我现在只是在修修补补,但即便如此,我仍然在第一关!
我的脚本包含下面的代码(我从这个SA答案中复制了代码):
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
HSSFWorkbook wb;
using (FileStream file = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
{
wb = new HSSFWorkbook(file);
}
Run Code Online (Sandbox Code Playgroud)
但失败并显示以下错误消息: Could not load file or assembly 'NPOI, Version=2.1.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1' or one of its dependencies. The system cannot find the file specified
但是当我进入脚本任务时,引用就在那里并且没有错误.
如果我注释掉除了第一行之外的所有内容,我声明一个HSSFWorkBook被调用wb它运行正常.
我是否错误地添加了引用,或者添加对SSIS脚本任务的引用是多么困难?
一如往常,任何帮助都非常感谢.
我有一个Excel文件,我使用DevExpress编辑,我正在使用NPOI阅读.当我尝试将日期单元格的值作为字符串时,它不保留原始值.
例如:在DevExpress网格中,我设置了这个值:2016-08-12.我想在我的字符串中获得相同的值,但我得到了42689.
获取单元格值的代码如下:
ICell cell = row.GetCell(i);
cell.SetCellType(CellType.String);
string fieldString = cell.StringCellValue;
result = result + ";" + FieldValue;
Run Code Online (Sandbox Code Playgroud)
如何获取原始格式化的日期值?
我正在使用NPOI v1.2.3导出网格,并且无法使单元格格式化工作.
我有一个类将对象列表导出到XLS文件.为每个对象创建一行,并为每个已配置的属性添加一个单元格.可以在每个属性级别上设置单元格数据格式.
我读过你不应该为每个单元格创建一个新的样式.我无法对我的样式进行硬编码,因为我的导出器需要支持任何类.相反,我编写了一个小缓存系统,只有在尚未为当前单元格格式创建的情况下才创建新的CellStyle.
不幸的是,这仍然没有解决问题.格式未在最终的XLS文件中正确应用.在我的测试用例中,XLS中的大多数单元格都使用"日期"格式,即使只有几列是日期.但是,第一列正确使用自定义格式.没有单元格设置为文本,即使它应该是大多数单元格.
我究竟做错了什么?
码
下面的"AddRecords"方法用于添加数据行(页眉和页脚行分别添加).最后一段代码是延迟加载CellStyles的方法.
private void AddRecords( Sheet sheet, IList<T> records )
{
foreach( var record in records )
{
// append row
var row = sheet.CreateRow ( sheet.LastRowNum + 1 );
// iterate through all configured columns
foreach ( var column in GetColumns() )
{
// append cell
Cell cell = row.CreateCell ( row.LastCellNum == -1 ? 0 : row.LastCellNum );
// get the property value of the column from the record
object …Run Code Online (Sandbox Code Playgroud) 我正在xlsx使用NPOIlib和读取文件C#。我需要提取一些excel列,并将提取的值保存到某种数据结构中。
我可以使用以下代码成功读取文件并从第二个(第一个仅包含标头)到最后一行获取所有值:
...
workbook = new XSSFWorkbook(fs);
sheet = (XSSFSheet)workbook.GetSheetAt(0);
....
int rowIndex = 1; //--- SKIP FIRST ROW (index == 0) AS IT CONTAINS TEXT HEADERS
while (sheet.GetRow(rowIndex) != null) {
for (int i = 0; i < this.columns.Count; i++){
int colIndex = this.columns[i].colIndex;
ICell cell = sheet.GetRow(rowIndex).GetCell(colIndex);
cell.SetCellType(CellType.String);
String cellValue = cell.StringCellValue;
this.columns[i].values.Add(cellValue); //--- Here I'm adding the value to a custom data structure
}
rowIndex++;
}
Run Code Online (Sandbox Code Playgroud)
我现在想做的是检查excel文件是否为空或只有1行,以便正确处理该问题并显示一条消息。
如果我对只有1行(标题)的excel文件运行代码,则会中断
cell.SetCellType(CellType.String); //--- here …Run Code Online (Sandbox Code Playgroud) 我正在使用 NPOI 来操作 Excel(.xlsx) 文件数据和格式。我想知道是否有一种方法可以将单元格范围格式化为表格。
// something like.
ITable table = worksheet.FormatAsTable("A1:C4");
Run Code Online (Sandbox Code Playgroud)
在互联网上做了一些研究,但还没有运气。任何帮助将非常感激!
正如标题所说。网上有很多用于将文件上传到后端的示例,但我在验证客户端/离线后仅上传数据(无文件)。理论上,任何在 .Net5 上运行的东西都应该能够在 WASM 中以接近的性能运行。我正在尝试将这些繁重的操作卸载到客户的机器上。
我在 ClosedXML 方面取得了一些成功,但是当文件有几千行时,它会变得非常慢。在 Blazor 服务器端使用 ClosedXML 轻松加载 100,000 行。
笔记:
页:
@page "/upload"
@inject HttpClient Http
<h1>Upload Data</h1>
<p>This component demonstrates uploading data from Excel.</p>
<InputFile id="fileInput" OnChange="UploadFiles" hidden single />
<MudButton HtmlTag="label"
Variant="Variant.Filled"
Color="Color.Primary"
StartIcon="@Icons.Filled.CloudUpload"
for="fileInput">
Upload Files
</MudButton>
@if (dataTable == null)
{
<p><em>Please upload Excel File</em></p>
}
else
{
<MudTable Items="@dataTable.AsEnumerable().Take(500)" Hover="true" Breakpoint="Breakpoint.Sm" T="DataRow" RowsPerPage="100">
<HeaderContent>
@foreach …Run Code Online (Sandbox Code Playgroud)