Tag: npoi

C#NPOI库和无效的zip压缩

我正在使用NPOI库在C#应用程序中读取和写入XLSX电子表格。 这个库似乎工作,我可以打开,写入并重新打开一个Excel文件。 当我试图用MS Excel打开一个NPOI文件时发现了一个问题,即文件有一些损坏的内容。 但是NPOI库可以打开它的文件。 我可以理解,这是一个压缩问题,似乎xlsx的zip压缩是无效的Excel和此问题是由ICSharpCode.SharpZipLib.dll引起的,因此这个dll的副本与NPOI库分发。 我试图添加这个DLL在我的项目引用,但压缩仍然无法正常工作。 如何解决这个问题?

使用NPOI从.xls文件中删除图像

使用C#和NPOI,我想清除我的.xls文件中的一些单元格,也删除浮动图像(我知道它不是任何单元格的一部分)。 我可以清除细胞: ICellStyle style = hssfWorkbook.CreateCellStyle(); cell.SetCellValue(""); cell.SetCellFormula(""); cell.CellStyle = style; 但是,如何删除图片?

使用NPOI密码保护excel

我有一个.NET的C#应用​​程序,其中即时下载button点击一个Excel文件。 我使用的代码是 using NPOI.HSSF.UserModel; using NPOI.HSSF.Util; using NPOI.SS.UserModel; 那么一些代码。 HSSFWorkbook book = new HSSFWorkbook(); var sheet = book.CreateSheet("StatusReport"); 一些用于格式化excel的代码,然后是用于下载excel的一些代码。 HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Charset = "utf-16"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "MpiDischargeReport.xls")); HttpContext.Current.Response.ContentType = "application/ms-excel"; book.Write(HttpContext.Current.Response.OutputStream); HttpContext.Current.ApplicationInstance.CompleteRequest(); 这将帮助我下载excel,但是我需要把这个excel作为一个密码保护的。 请帮忙。

NPOI以相同的方式格式化所有单元格

请看下面的代码片段。 我只需打开excel文件myfile.xlsx然后从List<Account>types的对象(其中, Account对象只有Date , Account和Amount属性)中添加行,然后使用名称myoutputfile.xlsx存储该文件。 我希望我写date的单元格具有date格式,而我所拥有的单元格的数量是数字格式。 但是,如果我尝试下面的代码,所有单元格格式化为#.00格式(date以及)。 我已经尝试了一切,有人可以告诉我发生了什么事吗? 我正在使用NPOI。 XSSFWorkbook wb; var fileName = "C:/tmp/myfile.xlsx"; var outputFileName = "C:/tmp/myoutputfile.xlsx"; using (var file = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite)) { wb = new XSSFWorkbook(file); } XSSFSheet sheet = (XSSFSheet) wb.GetSheetAt(0); for (int i = 0; i < accountRecs.Count(); ++i) { var rec = accountRecs[i]; var row = […]

NPOI Excel数字格式不显示在asp.net中的Excel工作表中

我正在尝试使用NPOI库在Excel中创build双精度和数字格式的单元格。 我使用类似的代码 Dim cell As HSSFCell = row.CreateCell(j) cell.SetCellValue(Double.Parse(dr(col).ToString)) 在Excel中,数字alignment正确,但是当我检查格式时显示在“常规” 然后我改变了我的代码,如下所示 Dim cell As HSSFCell = row.CreateCell(j) cell.SetCellValue(Double.Parse(dr(col).ToString)) Dim cellStyle As HSSFCellStyle = hssfworkbook.CreateCellStyle cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("#,#0.0") cell.CellStyle = cellStyle 然后,当打开文件时,它给出了错误,也花了这么久打开。 但Excel格式显示在“数字” 显示错误如下。 如何解决这个问题?

通过HSSF.EventUserModel通过受保护的书籍和工作表读取XLS

END GOAL:有效地(一次通过)读取一个巨大的(30,000+行)受保护的Worksheet上的所有CellRecords 。 问题:使用HSSF.EventUserModel ,如何读取具有Workbook和Worksheet保护的XLS文件的所有Record (包括CellRecords )? 创buildinput电子表格(在Excel 2010中): 创build新的空白工作簿。 将A1的值设置为50 将A2的值设置为string:50 将A3的值设置为公式:= 25 * 2 审查(色带) – >保护表 – >密码:pass1 审查(function区) – >保护工作簿 – >密码:pass1 文件(function区) – >另存为… – >另存为types:Excel 97-2003工作簿 迄今取得的进展: 在Excel中,XLS文件不用密码即可打开。 因此,您不应该需要密码才能在POI中打开它。 使用new HSSFWorkbook(Stream fs)成功打开XLS文件。 但是,我需要为我的实际电子表格的EventUserModel效率。 设置NPOI.HSSF.Record.Crypto.Biff8EncryptionKey.CurrentUserPassword = "pass1"; 不工作。 ProcessRecord( )函数捕获一个PasswordRecord ,但我找不到任何有关如何正确处理它的文档。 也许, EncryptionInfo或Decryptor类可能有一些用处。 注意: 我正在使用NPOI。 不过,我可以将任何Java示例翻译为C#。 码: 我使用下面的代码来捕获Record事件。 我的Book1-unprotected.xls (没有保护)显示所有Record事件(包括单元值)。 […]

使用NPOI从Excel文件读取图像

我在使用C#编写Visual Studio 2010中的程序来读取一些Excel文件,并使用NPOI库。 最终目标是读取原始excel文件(xlsm)中的图像,将该图像复制并粘贴到新的excel文件(xlsx)中。 如果它可以粘贴到原来的位置,会更好。 我无法find直接复制和过去的方法,所以我的解决方法是读取图像,在本地保存图像的副本(如JPEG或其他),然后将图像插入到新的Excel文件中。 下面是我用来读取图像和保存副本的代码。 var lst = originalWorkbook.GetAllPictures(); for (int i = 0; i < lst.Count; i++) { var pic = lst[i]; Stream s = File.Open(String.Format("{0}.jpeg", n), FileMode.Create); BinaryFormatter bf = new BinaryFormatter (); bf.Serialize(s, pic); s.Close(); } 当我运行这个程序时,我收到一个exception,说“ Type 'NPOI.XXSF.UserModel.XSSFPictureData' in Assebly……is not marked as serializable ”。 我尝试在我的课之前添加[Serializable] ,但exception仍然存在。 我该如何解决这个可序列化的问题? 还是有更好的方法来实现我的最终目标? […]

阅读与NPOI腐败excell文件

我最近也问了一个类似的问题,但是感谢那些对这个问题发表意见的人,我知道这个问题比NPOI更出色,所以我把这个问题删掉了,在这里重新翻译一下。 无论如何,我的主要问题是在我之前的问题中提到的。 我需要使用NPOI读取下载的.xls文件。 问题是我下载的文件很可能是一个已经导入到excel文档的HTML表格。 或者,或者Excel文档实际上是一个错误压缩/解压缩的.xlsx(MIME?)。 当我在Excel中打开文档时,我收到警告说文件可能已损坏。 我按“确定”,一切正常。 所以显然这个文件是可读的,但不是NPOI。 有人知道我能做些什么吗? 或者是失败的原因?

NPOI用NancyFx返回一个.xls文件

我正在尝试创build一个导出函数,我将创build的.xls文件发送给用户。 我正在使用NancyFx创buildexcel文件的请求和NPOI。 无法找出这个代码有什么问题,我得到一个OK 200响应,但不是内容/文件返回。 public class ExportService { private HSSFWorkbook HssfWorkbook { get; set; } public ExportService() { HssfWorkbook = new HSSFWorkbook(); } public Response Export() { string fileName = "test2.xls"; var response = new Response(); response.Headers.Add("Content-Disposition", string.Format("attachment;filename={0}", fileName)); InitializeWorkbook(); GenerateData(); response.Contents(WriteToStream()); return response.AsAttachment(fileName, "application/vnd.ms-exce"); } private MemoryStream WriteToStream() { //Write the stream data of […]

如何在Excel电子表格中使用NPOI C#

我需要使用C#中的NPOI将工作表中的所有单词转换为大写; 我找不到这样做的方法。 在应用大写之前:Cell [1; 1] = stackoverflow 应用大写字母后:Cell [1; 1] = STACKOVERFLOW