Tag: npoi

为什么在Excel中格式为“ h:mm:ss \ AM / PM”格式为24小时制?

而这个[$-409]h:mm:ss\ AM/PM;@不是,并且正确地显示AM / PM? 我正在使用NPOI从Excel文件读取并为我的应用程序提取一些有用的数据。 当我parsingdate的时候,我偶然发现了这个有趣的例子。 这个格式为[$-F400]h:mm:ss\ AM/PMdate为16:00:00 (4 o'clock in the afternoon)在excel中显示为16:00:00 。 然而,类似的格式, [$-409]h:mm:ss\ AM/PM;@ ,显示04:00:00 PM ,我相信这是正确的,因为在格式string的末尾有AM/PM符号。 我的Excel版本是这样的: Microsoft® Office Excel® 2007 (12.0.6665.5003) SP3 MSO (12.0.6662.5000) 我使用最新版本的NPOI(从源代码获得),它将[$-F400]h:mm:ss\ AM/PM为hh:mm:ss tt (与excel的方式不匹配显示它) 我知道[$-XXXX]是语言环境,我不知道;@ 。 为什么根据情况,excel完全忽略了AM/PM部分? 编辑:它似乎是AM/PM的文本占位符似乎。 是否缺less这个标志强迫excel显示24小时制?

C#程序使用NPOI编辑excel(.xls)的单元格值不工作

我写了下面的程序来编辑使用NPOI的excel文件(.xls)的单元格值,程序运行时没有错误或exception,但是值没有得到更新 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Web; using NPOI.XSSF.UserModel; using NPOI.XSSF.Model; using NPOI.HSSF.UserModel; using NPOI.HSSF.Model; using NPOI.SS.UserModel; using NPOI.SS.Util; namespace Project37 { class Class1 { public static void Main() { string pathSource = @"C:\Users\mvmurthy\Desktop\abcd.xls"; FileStream fs = new FileStream(pathSource, FileMode.Open, FileAccess.ReadWrite); HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true); […]

如何在生成Excel(xlsx)时在列之前设置一行

我只想为列前的excel文档标题设置一行。 有人能帮我吗?! 按照代码: 在这里我创build我的Excel格式,列 DataTable dt = new DataTable(); dt.Columns.Add("Value 1", typeof(string)); dt.Columns.Add("Value 2", typeof(string)); 在此之后,已经定义了我的值(var value1 =“exemple”) dt.Rows.Add( value1, value2); WriteExcelWithNPOI(dt, "xlsx"); 我希望这是可以理解的。 如果有必要,也可以按照生成xlsx的代码进行操作: public void WriteExcelWithNPOI(DataTable dt, String extension){ IWorkbook workbook; if (extension == "xlsx") { workbook = new XSSFWorkbook(); } else if (extension == "xls") { workbook = new HSSFWorkbook(); } else […]

使用npoi单元格范围地址读取excel

我知道NPOI创buildexcel文件非常棒。 现在我想在特定的专栏中阅读excel。 这是我的excel格式: DEFGH 3 Col1 Col2 Col3 Col4 Col5 4 a 1 1/1/2014 5 b 2 2/1/2014 6 c 3 3/1/2014 7 d 4 4/1/2014 8 e 5 5/1/2014 我只想在Col2,Col4和Col5中获取数据。 应该是这样的: Col2 Col4 Col5 a 1 1/1/2014 b 2 2/1/2014 c 3 3/1/2014 d 4 4/1/2014 e 5 5/1/2014 我必须做什么 ? 我可以使用范围地址来获得特定的列,然后获取单元格值吗? 感谢专家。

如何重新计算单元格的公式?

我的代码设置了很多单元格的值。 最后,在生成excel文件之前,需要对每个单元格中的公式进行评估。 对于大多数床单,事情进展顺利。 但是,有一个单元格抛出exception。 该单元格正在计算一系列在其之后的单元格的平均值,并在其他表单中引用单元格。 我想,当第一个单元格正在尝试计算平均值时,之后的单元格还没有被评估。 这是这个单元格上的公式 =IFERROR(AVERAGEIF(D2:AU2,"<>-"),"-") 我怀疑这是因为单元格int范围参考其他工作表中的单元格。 D2 ,例如,具有以下公式=Common!E2 。 所以我决定做的是: 将调用包装在try-catch块中执行一个公式。 如果执行一个单元格抛出一个exception,我保存该单元格的坐标。 然后我执行抛出exception的单元格 我注意到同一个单元格一直在抛出错误。 只是为了能够退出循环,我计数到3次迭代。 当生成excel生成时,该单元格的值为- 。 但是,当我select单元格然后按enter键,它会执行并显示正确的值。 我推迟执行该单元格的原因是,在第一次迭代之后,已经评估了引用其他表格的单元格。 但是,它仍然不工作,因为它一直抛出exception。 感谢您的帮助。 更新 我正在使用npoi和c#。

NPOI – 如何区分date时间格式的数字Excel单元格(c#)

背景 我有Excel文件(xlxs)与一些date时间和小数,我想转换成一个二维string数组。 数组中的string看起来应该和用户input到excel中一样。 为此,我使用C#使用NPOI 2.2.1版本。 请注意,示例中的列A在Excel中被格式化为date! COLUMN A COLUMN B 2016-07-20 -46,95 2016-07-20 283,59 2016-07-20 -46,95 2016-07-20 52194,64 我有一个通用的方法ConvertCellToString()将单元格转换成适当的string表示forms: private string GetCellAsString(ICell cell) { switch (cell.CellType) { case CellType.Boolean: return cell.BooleanCellValue.ToString(); case CellType.Error: return cell.ErrorCellValue.ToString(); case CellType.Formula: return cell.CellFormula.ToString(); //ALL CELLS IN THE EXEMPEL ARE NUMERIC AND GOES HERE case CellType.Numeric: return cell.NumericCellValue.ToString(); case CellType.String: […]

如何在不使用excel com库的情况下将macros插入到excel文件中

有没有办法将现有的macros插入到现有的Excel文件中而不使用Excel库? 我需要这个设置excel来打印整个工作簿。我不能使用excel库,因为它将在不可能安装excel的服务器上在线完成。 我可以使用c#.net编码。 我正在使用NPOI来生成excel。 macros在下面给出 Private Sub Workbook_BeforePrint(Cancel As Boolean) If printed = False Then Cancel = True printed = True ActiveWorkbook.PrintOut End If End Sub

C#加载xlsx文件的性能不好

我有一个关于在C#中加载Excel(Xlsx)文件的问题。 我已经用NPOI 2.0实现了Excel加载,但性能非常差(加载时间为15到25秒,10000行和60列)(运行在Win7上,带有Intel(R)Core TM i5-3210M CPU @ 2.50GHz(4 CPU),〜2.5GHz))。 我以为这是因为NPOI 2.0还在testing阶段,所以我尝试了另外一个名为EPPlus的库,并且加载Excel文件的时间也相当长。 以下是我如何使用EPPlus加载它: var existingFile = new FileInfo(path); var excelData = new ExcelViewModel(path); // Open and read the XlSX file. using (var package = new ExcelPackage(existingFile)) { // Get the work book in the file ExcelWorkbook workBook = package.Workbook; if (workBook != null) { // Here […]

如何使用NPOI库生成折线图和Excel表格中的数据c#

我必须将数据导出到数据表的excel工作表,还需要在同一工作表中显示一个折线图。 我的问题是我怎么能显示数据和图表在同一张表。 我正在使用NPOI库版本1.2.5.0&dotnet 2.0我已经设法使用这种方式使用NPOI库从数据表中导出数据到excel。 这里是我的示例代码。 class Program { static void Main(string[] args) { DataTable dt = new DataTable(); dt.Columns.Add("First Name", typeof(string)); dt.Columns.Add("Last Name", typeof(string)); dt.Columns.Add("Salary", typeof(double)); DataRow dr = null; dr = dt.NewRow(); dr[0] = "Konna"; dr[1] = "Lombard"; dr[2] = "3000"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = "Tunip"; dr[1] = "Mansar"; dr[2] = "4000"; […]

从Excel中删除行

以下是我尝试的方法: 答)我试图使用Microsoft.Office.Interop.Excel从Excel表中删除行。 我在SSIS包中的脚本任务中这样做。 我将库添加到GAC,因为它提出了一个错误: Could not load Library 。 现在,它引发这个错误说: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 。 谷歌search这告诉我,我需要MS Office安装它的工作,我不希望因为我部署这个解决scheme的服务器是绝对不会有MS Office安装在它上面。 我不是专家,但我想知道为什么这样的操作是不可能的,通过简单地添加引用一个DLL? 为什么必须安装MS Office。 B)我也尝试过Oledb jet jet provider,但是这个不允许删除行。 它支持的唯一操作是插入,更新和select。 我在网上遇到的事情: A) SO问题的答案build议使用Npoi ,但我不能完全依靠这个,因为今天免费的图书馆可以在未来得到支付。 B)我也遇到了EPP Plus库。 我已经使用它,并明白它是基于GNU公共许可证,但我担心使用它,因为它可能成为未来的付费工具。 C)我也遇到过使用Microsoft的Open XML SDK的人。 在我弄脏手之前,如果有人先告诉我是否应该使用这个,我会很喜欢。 不是我懒得自己尝试一下,但是我开始之前对我有什么帮助的是,这个SDK是否需要安装在机器上的任何外部程序。 因为它需要我安装一个msi才能够使用它。 有没有办法使用Microsoft COM组件来做到这一点? 我不是在这里问一个主观的问题。 […]