Tag: npoi

使用xmlMaps以编程方式将Excel文件导出为XML

使用Excel插件OfficeExcel2003XMLToolsAddin我已经能够为Excel工作表定义XML映射(这个插件将范围转换成XML列表),现在我可以手动将Excel文件保存为XML文件,使用另存为。 Excel正确地产生类似的东西 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Row> <brand>Brand1</brand> <Italian>Description1</Italian> <English>Description2</English> </Row> <Row> <brand>Brand2</brand> <Italian>Description3</Italian> <English>Description4</English> </Row> </Root> 现在,我想以编程方式做相同的(希望使用C#,.NET 4.0)。 我尝试使用npoi和Microsoft Office Interop Excel,使用此代码 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Workbooks.OpenXML(@"excelFile.xls"); xlApp.Workbooks[1].SaveAs(xmlFile, XlFileFormat.SOME_FORMAT); 尝试使用XlFileFormat参考页面上列出的所有枚举,但没有成功。 有什么build议么? 谢谢

NPOI:创build一个包含两个不同大小string的单元格

所以如题目所示,我想在一个包含2个string的NPOI 2.1.3-Workbook中创build一个单元格:一个“普通”大小的string和一个“小”大小的string。 =>我想改变单元的一部分的字体大小。 我的代码到目前为止: var planCell = planRow.CreateCell(lineCnt + 1); var planCellStyle = workbook.CreateCellStyle(); planCellStyle.WrapText = true; planCellStyle.VerticalAlignment = VerticalAlignment.Top; planCellStyle.Alignment = HorizontalAlignment.Left; var font = workbook.CreateFont(); font.FontName = HSSFFont.FONT_ARIAL; font.FontHeightInPoints = 16; font.Boldweight = (short)FontBoldWeight.Bold; planCellStyle.SetFont(font); planCell.CellStyle = planCellStyle; string planTitleContent = string.Empty; … (some logic to get desired string for planTitleContent) string planInfoContent […]

C#NPOI Excel工具不删除行?

我正在开发一个应用程序,该应用程序应该从文件末尾读取一行内容,对其执行某些操作,然后删除该行并更新该文件。 我正在使用NPOI库,但它不工作。 为了避免不良数据(空单元格)进来,我运行以下检查: IWorkbook WB; ISheet WS; ICell cell; using ( FileStream FS = new FileStream( p, FileMode.Open, FileAccess.Read ) ) { if ( Path.GetExtension( p ).ToLower( ).Equals( "xls" ) ) WB = new HSSFWorkbook( FS ); else WB = new XSSFWorkbook( FS ); } WS = WB.GetSheetAt( 0 ); cell = WS.GetRow( WS.LastRowNum ).GetCell( […]

返回excel文件,而不保存在控制器内的服务器

我想要将Excel文件(使用NPOI库)返回给用户,而不需要先将文件保存在服务器中。 这是我的代码: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Report(SalesReportViewModel model) { if (ModelState.IsValid) { XSSFWorkbook wb = context.GetReport(model); //I have no idea what to return after I got my wb } return View(); } 任何帮助将不胜感激。

读取20MB XLSX文件的“OutOfMemoryException”

我正在使用NPOI来处理Excel文件。 以下是我正在阅读文件的方式: using (FileStream stream = File.OpenRead(excelFilePath)) { IWorkbook wb = WorkbookFactory.Create(stream); … } 但是,对于大于几兆字节的任何XLSX文件而言,这会导致内存使用量猛增至1GB左右,并最终导致OOMexception。 做一些研究,我发现 ,奇怪的是,从文件加载工作簿,而不是一个stream导致POI内存消耗更less。 与我提供的使用Files提供的Java示例等效的最接近的C#如下所示: OPCPackage pkg = OPCPackage.Open(new FileInfo(excelFilePath)); XSSFWorkbook wb = new XSSFWorkbook(pkg); 但它似乎使用相同的底层实现,因为内存使用仍然是相同的,并导致OutOfMemoryexception。 NPOI是否有内置的用于处理大型XLSX文件的内容? 对可以同时处理XLS和XLSX文件的替代库的build议也值得欢迎。

如何检查IWorkbook对象是否可以从文件stream构build?

我使用NPOI库来读取xlsx和xls文件。 我有这个代码: IWorkbook workBook = null; string fileExtension = Path.GetExtension(path); using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { if (fileExtension == ".xls") workBook = new HSSFWorkbook(fs); else if (fileExtension == ".xlsx") workBook = new XSSFWorkbook(fs); } 而且它是完美的工作。 但是,excel文件的path并不总是以扩展名(.xls或.xlsx)为名。 所以我需要检查fs suitebale是否为HSSFWorkbook()或XSSFWorkbook() 任何想法如何检查它没有扩展名的文件?

尝试使用NPOI在Excel电子表格中对整列单元格着色

下面是我用来使用NPOI在Excel文件中对单元格进行着色的C#程序: string pathSource = @"C:\Users\mvmurthy\Downloads\VOExportTemplate (2).xlsx"; HSSFWorkbook templateWorkbook; HSSFSheet sheet; HSSFRow dataRow; using (var fs = new FileStream(pathSource, FileMode.Open, FileAccess.ReadWrite)) { templateWorkbook = new HSSFWorkbook(fs, true); sheet = (HSSFSheet)templateWorkbook.GetSheet("ImportTemplate"); int num = sheet.PhysicalNumberOfRows; for (int i=1; i<num; i++) { dataRow = (HSSFRow)sheet.GetRow(i); HSSFCellStyle hStyle = (HSSFCellStyle)templateWorkbook.CreateCellStyle(); hStyle = (HSSFCellStyle)templateWorkbook.CreateCellStyle(); hStyle.FillForegroundColor = IndexedColors.Red.Index; hStyle.FillPattern = FillPattern.SolidForeground; […]

C#,将Npoi.ICell转换为Doubletypes

我使用NPOI从Excel文件导入数值数据。 至于阅读单元格,我有这个问题“不能隐式转换转换typesNPOI.SS.UserModel.ICell为双”。 public class Clas { public double CellValue; public string CellName; } … public CLAS ClasMaker(int a, int b) { C ClaA; ClaA.CellValue = sheet.GetRow(a).GetCell(b) // here ClaA.CellName = sheet.Getrow(a).GetCell(b-1).ToString() // As for string its okay i used ToString() } 如何将ICell转换为像ToString()这样的特定types? 我无法将CellValue的types更改为var。 因为它在其他许多事情上宣称是双重的。

如何在C#中使用NPOI Excel添加单元格注释?

我想在C#中使用NPOI Excel创build单元格注释。 我没有find任何明确的文件。 我自己写下如下。 NPOI.HSSF.Record.NoteRecord nr = new NPOI.HSSF.Record.NoteRecord(); nr.Author = "Some Author"; NPOI.HSSF.Record.TextObjectRecord tor = new NPOI.HSSF.Record.TextObjectRecord(); tor.Str = new HSSFRichTextString("something"); HSSFComment cm = new HSSFComment(nr, tor); cm.Visible = true; sheet.GetRow(i).Cells[k + 8].CellComment = cm; 该代码无法正常工作。 在生成的excel文件中,我看不到有关该单元格的任何评论。 有没有人知道如何在特定的单元格中添加注释?

尝试使用NPOI来填写Excel模板时出错

使用NPOI并试图在这里按照教程: http : //www.zachhunter.com/2010/05/npoi-excel-template/ ,我遇到了“对象引用未设置为对象的实例”错误在这一行: sheet.GetRow(1).GetCell(1).SetCellValue("some test value") 当试图使用这个代码: Imports System.IO Imports System.Web.Security Imports NPOI.HSSF.UserModel Imports NPOI.SS.UserModel Imports NPOI.SS.Util Imports NPOI.HSSF.Util Imports NPOI.POIFS.FileSystem Imports NPOI.HPSF Partial Public Class NPOI_01 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) End Sub Public Shared Sub ExportDataTableToExcel(ByVal memoryStream As MemoryStream, ByVal fileName As String) Dim […]