Tag: npoi

复制Excel工作表与NPOI CopySheet; 副本总是空白

我试图创build一个应用程序,将Excel电子表格在一个给定的目录合并到一个单一的,标签式的Excel工作簿。 我只能访问VS社区2015,所以VSTO是不可能的。 我正在使用Interop和NPOI 2.1.3.1。 这是我的代码: files = Directory.GetFiles(sourcePath); XSSFWorkbook test = new XSSFWorkbook(); try { string fPath = files[0]; FileStream fs2 = new FileStream(fPath, FileMode.Open, FileAccess.ReadWrite); XSSFWorkbook myBook = new XSSFWorkbook(fs2); test.CreateSheet(myBook.GetSheetName(0)); var sheet1 = myBook.GetSheetAt(0).CopySheet(test.GetSheetName(0)); test.Write(new FileStream("testFile.xlsx", FileMode.Create, FileAccess.ReadWrite)); } catch { } 我并不想做任何奇怪的事情,只需获取由GetFiles函数返回的第一个文件,复制第一个工作表上的所有内容,然后在新的工作簿“test”中创build一个新的工作表。 我知道正在find源文件,因为输出文件“testFile.xlsx”的sheet1正在获取源工作表的唯一表名 – 它不是“Sheet1”。 但是,表格的其余部分是空白的,我不知道为什么。 我正在使用Excel 2016,如果这有所作为。

NPOI:使用SXSSFWorkbook格式化为十进制的Excel列?

我正在用ASP.net(VS2015 C#)开发一个网站。 我需要使用格式将大量数据(500000行和100列)的MySql表导出为ex​​cel( xlsx )。 在尝试了很多选项之后,NPOI(v 3.20)库允许使用使用stream式传输的types( SXSSFWorkbook & SXSSFSheet )进行SXSSFSheet 。 如果我使用XSSFWorkbook我得到和内存填满行。 使用SXSSFWorkbook我已经能够使用不同的字体和颜色来格式化xlsx ,但是我遇到了导出的数据types的问题: datetypes确定 Inttypes确定 文字确定 小数input像100.35 – >问题,我得到一个文本列。 我需要一个100,35的输出。 我用来格式化数据的代码是: SXSSFWorkbook wb = new SXSSFWorkbook(); SXSSFSheet sh = (SXSSFSheet)wb.CreateSheet("Sheet 1"); sh.SetRandomAccessWindowSize(100); ICellStyle testStyleHeader = wb.CreateCellStyle(); ICellStyle testStyleRow = wb.CreateCellStyle(); // Header Style testStyleHeader.FillForegroundColor = NPOI.SS.UserModel.IndexedColors.RoyalBlue.Index; testStyleHeader.FillPattern = FillPattern.SolidForeground; // Double style (with […]

C#。 xlsxdate单元格通过NPOI 2.0导入到DataTable

我试图通过使用NPOI 2.0库将.xlsx文件转换为DataTable格式。 没关系,但是我有转换为stringdate单元格的问题。 当我尝试使用像row.GetCell(j).ToString()这样的构造 – 它抛出exception“无法从文本单元格获取数值”。 我试图使用DateCellValue属性,但它也抛出了这个exception。 与其他单元格格式是很好的。 function,我使用它的: private DataTable xlsxToDT(string fileName) { DataTable table = new DataTable(); XSSFWorkbook workbook = new XSSFWorkbook(new FileStream(fileName, FileMode.Open, FileAccess.Read)); ISheet sheet = workbook.GetSheetAt(0); IRow headerRow = sheet.GetRow(0); int cellCount = headerRow.LastCellNum; for (int i = headerRow.FirstCellNum; i < cellCount; i++) { DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue); table.Columns.Add(column); […]

在Excel中读取时间单元格作为确切的文本

我有一个自定义格式hh:mm excel表单中的time cell 。 在任何公式中应用它时,都将其视为excel保留时间单元的数值。 有没有办法将其作为文本检索? 目的是如果我在这个时间单元格input10:78 ,它会自动转换为0.470833333而不是触发validation或转换为11:18。 我可以设置自定义格式,因为我是使用NPOI这个excel的一代 所以,如果我能够阅读78 ican包括数据validation公式中的条件。 我试过MINUTE()但它返回18 instead of 78 我真的坚持这一点。 任何帮助应该给我一个很大的安慰。

NPOI xls:计算结束指数(x)超出允许范围(y..y + 2)

写入新创build的文件时,我总是得到一个exception。 即使提供的表单为空,我也会得到这个exception。 没有床单的工作簿保存没有问题。 这个例外显示为空白表单。 附加信息:计算结束指数(1932)超出允许范围(1908..1910) 我正在使用NOPI.dll ver.2.1.3.1 http://npoi.codeplex.com/我尝试创build的文件是.xls(Excel 97-2003) 代码中的文件pathbolow有一个值@“C:\ TB \ Report.xls” 我的代码 public void Generate() { HSSFWorkbook newWorkBook = new HSSFWorkbook(); ISheet newSheet = newWorkBook.CreateSheet("Main"); newWorkBook.Add(newSheet); using (FileStream fileOut = new FileStream(filePath, FileMode.Create)) { newWorkBook.Write(fileOut); } } 文件被创build,但是它是空的。 当使用具有行和列的工作表创buildxls时,结果是相同的,除了exception中的数字更高。

NPOI 2.1.3.1产生损坏的XLSX文件

我试图使用NPOI 2.1.3.1从一些数据库数据创build一个Excel文件。 正在创build的文件已损坏。 Excel拒绝打开它,并将其更改为ZIP并尝试解压缩也会在Windows和WinRAR中导致错误。 我读过的其他线程说升级到2.1.3.1,因为它修复了一些有关XLSX创build,但是这不是真的。 我也读过它与它如何压缩文件有关,但似乎没有任何控制的能力。 我希望有人可以用我的代码指向正确的方向: public byte[] GetExcelFile( QueryModel query) { var orders = Mapper.Map<IList<ExcelListModel>>(Context.Orders.Where( o => o.DateOrdered >= query.Start && o.DateOrdered <= query.End)); var workbook = new XSSFWorkbook(); var sheet = workbook.CreateSheet(); for (int i0 = 0, l0 = orders.Count, r = 0; i0 < l0; i0++) { var order = orders[i0]; […]

使用NPOI将单元格的超链接复制到另一个单元格

我试图从一个表格复制某些数据到另一个,但有些单元格是简单的string,有些是超链接。 如果我在string上使用StringCellValue,那没关系,但是我还没有find一种方法将超链接从原始表单复制到我正在构build的新表单中。 为了构build新的表格和数据复制,我正在使用NPOI。 //更新我已经添加了代码来插入超链接,但是当我运行该程序时,它显示以下exception:对象引用未设置为对象的实例。 这是我的代码: using (FileStream fs = new FileStream(@"C:\Users\File.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { Console.WriteLine("Time to wait…."); templateWorkbook = new XSSFWorkbook(fs); } row.GetCell(6).SetCellValue(sheettoget.GetRow(1).GetCell(13).StringCellValue); var sourceLink = sheettoget.GetRow(1).GetCell(13).Hyperlink; if(sourceLink != null) { Console.WriteLine("Inserting first Juice session…"); var targetLink = new XSSFHyperlink(sourceLink.Type); targetLink.Address = sourceLink.Address; } row.GetCell(6).Hyperlink = targetLink; row.GetCell(6).CellStyle = sheettoget.GetRow(1).GetCell(13).CellStyle;

Npoi圆形公式

我是在NPOI新的,而我在项目上工作,我面临奇怪的问题,并不知道如何解决这个问题我正在阅读从Excel表格包含圆形函数和重估单元格使用npoi评估XSSFFormulaEvaluator每一件事,直到这一刻工作正常我没有任何问题,直到面对这个问题在Excel表我有这个公式=圆(693.9648; 2)在这个数字的Excel中的结果将是693.96,但与NPOI评估的结果将是693.97 任何一个人都可以回答我如何让excel表格和excel表格一样?

Excel自定义数据格式

我正在使用NPOI来生成XLS电子表格。 NPOI是在Codeplex上提供的Excel电子表格生成库/ API,使您能够创build工作簿,格式,公式等…我使用它来创build包含各种输出的多个工作表的工作簿计算。 对于每个包含一个值的单元格,我都使用了下面的自定义数据格式,我已经使用代码沿着以下方向探究了NPOI: var newFormat = MyNPOIWorkBook.CreateDataFormat(); var customFormat = newFormat.GetFormat("[=0]0;0.####"); 然后将customFormat应用于创build单元格样式的方法中的单元格。 这个效果相当好 – 但是当点/周期之后的小数点后第四位是0时,效果并不好。当这种情况发生时,我不会得到0.我的要求是让0实际显示! 所以说明一下。 0.33445566在电子表格中显示为0.3343(好!) – 但0.3340显示为0.334(不好) – 我想要0.3340。 我明白这是有点微不足道,但我想完全满足我的目标:) 任何人都可以提供帮助 – 通过build议一种解决方法,或以某种神奇的方式改变我的自定义格式? 谢谢-SB

NPOI支持CSV / TSV?

我正在使用一个C#应用程序的NPOI库。 我创build的是一个报告系统,可以自动读取,并从excel工作表中提取数据。 我被给了一个规范,告诉我我需要在我的系统中提取的所有报告都是.xls格式,但现在看来并不是这样。 我想知道是否可以使用NPOI库来读取CSV或TSV文件? 我已经抓取网页,但似乎只能find有关这个库的Java版本的答案。 任何帮助将不胜感激,谢谢:)