Tag: c#

当使用NPOI哪些文件应该添加到C#中的Visual Studio

我一直在试图从NPOI中导入所有的东西,但之后我不能让它使用这个库,所以我认为我input了错误的东西,所以如果有人知道这个东西太好了。

当保存文档时,EPPlus抛出“给定的键不在字典中”

我在一个ASP.Net MVC应用程序中使用EPPlus和C#来从存储系统中读取一个excel文档。 它作为一个字节数组(byte [])返回给方法。 我将字节数组转换为stream,然后转换为ExcelPackage并修改现有工作表上的单元格。 当我将ExcelPackage转换回stream时,作为FileStreamResult被提供给调用浏览器。 当我执行行MemoryStream ms = new MemoryStream(excel.GetAsByteArray()); 我得到了上面引用的exception。 public ActionResult Export(string id) { // Get the Excel document from storage MemoryStream ohDoc = new MemoryStream(); ohDoc.Write(doc.data, 0, doc.data.Length); ohDoc.Position = 0; ExcelPackage excel = new ExcelPackage(ohDoc); var workBook = excel.Workbook; var bidInfo = excel.Workbook.Worksheets["BID INFO"]; var recap = excel.Workbook.Worksheets["RECAP"]; // Modify […]

将DataTable直接绑定到Excel电子表格中

我正在构build一个C#VSTO加载项,并寻找将System.Data.DataTable直接绑定到Excel电子表格(如绑定数据源)的方法,并在电子表格中跟踪用户修改过的单元格,并以C#读取更改。 感谢帮助。

在Excel中通过Interop打开CSV只读取第一行

我有一个CSV文件,我想在Excel中打开它并再次保存为xlsx。 我想这样做,而不是直接将数据写入Excel文件的原因是我希望它的速度更快,因为写入数据非常缓慢。 我的csv看起来像这样: sep=, header1, header2, header3 data1, data2, data3 这里是我的代码将数据写入CSV,在Excel中打开并再次保存: var csvPath = [MyCSVPath]; File.WriteAllBytes(csvPath, WriteCsv(result)); excel.Workbooks.Open(csvPath, Delimiter: ","); // Save the excel localy and load it's bytes again. var path = [MyExcelPath] workbook.SaveCopyAs(path); excel.Workbooks.Close(); 当我手动打开excel中的csv时,它会正确打开。 但是,当我通过上面的代码执行它只包含第一行。 我究竟做错了什么?

excel interop无法在多次调用后启动服务器exception

我有一个asp.net MVC Web应用程序谁使用Excel互操作在Excel中打开CSV文件保存为XLSX的文件,并从该文件加载字节。 这些字节然后作为下载传递。 到目前为止,一切都按预期工作 但在6下载后,我得到以下例外。 不幸的是,这是在德国,因为服务器是在德国安装。 但是exception消息类似于“80080005启动服务器失败”。 Die COM-Klassenfactory für die Komponente mit CLSID {00024500-0000-0000-C000-000000000046} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80080005 Starten des Servers fehlgeschlagen (Ausnahme von HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, […]

使用EPplus检查每个单元的数据是否可用

我正在使用Epplus上传文件。我有两个.xlsx格式的表。我想确保每个单元格都有价值。例如在我的Excel中,我有下拉框。如果用户在第一张和第二张是空的。但是这个空白表只有一个值,它是通过使用这个下拉列表错误地添加的。所以在这个阶段,当它进入这个循环时它将显示对象空引用错误 for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { if (int.TryParse(s.Cells[rowIterator, 1].Value.ToString(), out n) && int.TryParse(s.Cells[rowIterator, 2].Value.ToString(), out n)) { Pss.Pbr = Convert.ToInt32(s.Cells[rowIterator, 1].Value); Pss.Amount = Convert.ToInt32(s.Cells[rowIterator, 2].Value); Ps.Add(Pss); } } 如何validation所有列和行都有值

Windows窗体input/保存到使用Excel的FilePath问题

我有一个简单的窗体与人的详细信息input.I使用文件path来保存条目(mydocuments / .csv文件)我在WF上的显示是一个标签 问题:我做的每个条目都保存在csv / excel文件中,在一个连续的行和标签上,当我点击“显示数据”我希望每个input行在标签显示分离任何帮助将不胜感激,新的这个游戏。 谢谢你我的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace StringFilePath { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string FilePath = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments) + Path.DirectorySeparatorChar+ "mestring.csv"; private void btnAdd_Click(object sender, EventArgs […]

为什么我的excel阅读器类除了date字段之外正确地读取每个字段?

我在使用Interop的Excel表格中阅读了多个领域,并且工作得几乎完美。 除了date字段外,每个字段都被读入,而date字段由一个奇怪的数字填充,这个数字与Excel文档中的任何内容无关。 下面是我需要运行程序的代码。 为了查看问题,必须运行testing类才能看到在控制台上输出的结果以及testing类中的testing。 excel文件必须在桌面上,标题为TEST.xlsx。 如果您需要检查我的Excel工作表,它链接在这里的谷歌文件。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Office.Interop.Excel; using _Excel = Microsoft.Office.Interop.Excel; namespace ConsoleApplication1 { /// <summary> /// This class reads data from an excel sheet and stores the data in Sales objects /// and then places each Sale into a List of Sales. /// […]

等待等待完成

我正在更新来自Sharepoint的Excel文件中的多个工作表。 workbookRange = await graphClient.Groups[sharedGroupID].Drive.Items[newFile.Id] .Workbook .Worksheets[worksheetInvoicePaymentSchedules] .Range(rangeInvoicePaymentSchedules) .Request() .PatchAsync(tempWorkbookRange); 在我从文件中获取内容之后,Excel中的工作表就会使用上述代码的变体进行更新 var invoiceFile = await graphClient.Groups[sharedGroupID].Drive.Items[newFile.Id] .Content.Request().GetAsync(); 但invoiceFile中的结果内容不完整,我如何强制它等到所有PatchAsync更新完成?

是否可以在程序中多次使用interop打开相同的工作簿和工作表?

我正在使用Excel Interop命令来打开工作簿/工作表来阅读和打印。 我有一个印刷和一个阅读class,我有两个class开放的工作簿。 读类打开它就好了,但是当我尝试在打印类中打开工作簿时,我得到一个空指针exception。 我是否允许两次打开相同的工作簿,或者我应该只做一次,并将其作为parameter passing给打印类?