Tag: excel

如何将两个excel文件合并为一个带有工作表名称的文件?

对于两个excel表的合并,我使用下面的代码。 using System; using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; namespace MergeWorkBooks { class Program { static void Main(string[] args) { Excel.Application app = new Excel.Application(); app.Visible = true; app.Workbooks.Add(“”); app.Workbooks.Add(@”c:\MyWork\WorkBook1.xls”); app.Workbooks.Add(@”c:\MyWork\WorkBook2.xls”); for (int i = 2; i <= app.Workbooks.Count; i++) { int count = app.Workbooks[i].Worksheets.Count; app.Workbooks[i].Activate(); for (int j=1; j <= count; j++) { Excel._Worksheet […]

使用Interop从DataGrid导出到Excel太慢了

我即将编写一个WPF应用程序,它从数据库中获取数据并在DataGrid中显示它。 然后使用按钮创建Excel文件并填充数据。 如20000行的大量数量,Excel中的填充需要太长时间。 有人知道为什么吗? 谢谢 private void copyAlltoClipboard() { Clipboard.Clear(); DataGrid1.SelectAllCells(); DataGrid1.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader; ApplicationCommands.Copy.Execute(null, DataGrid1); } private void Button_Click(object sender, RoutedEventArgs e) { copyAlltoClipboard(); Excel.Application xlexcel; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlexcel = new Excel.Application(); xlexcel.Visible = true; xlWorkBook = xlexcel.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1]; CR.Select(); xlWorkSheet.PasteSpecial(CR, […]

如何在asp.net中读取excel文件

我正在使用Epplus库来从excel文件上传数据。我正在使用的代码完全适用于具有标准form.ie的excel文件,如果第一行是列,其余所有数据都对应于列。但现在我是一天定期获取,excel文件具有不同的结构,我无法读取excel文件,如下所示 我想要的是在第三行我只有区域和位置ID及其值。然后第7行是列,第8到15是它的值。最后第17行是18到20的列。如何将所有这些数据加载到单独的数据表我使用的代码如下所示我创建了一个扩展方法 public static DataSet Exceltotable(this string path) { DataSet ds = null; using (var pck = new OfficeOpenXml.ExcelPackage()) { try { using (var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { pck.Load(stream); } ds = new DataSet(); var wss = pck.Workbook.Worksheets; //////////////////////////////////// //Application app = new Application(); //app.Visible = true; //app.Workbooks.Add(“”); //app.Workbooks.Add(@”c:\MyWork\WorkBook1.xls”); //app.Workbooks.Add(@”c:\MyWork\WorkBook2.xls”); //for (int […]

从XML字符串生成XML模式

我有一个XML字符串,我想加载到Excel工作表。 我几乎让它工作,但我需要能够生成传递给XmlMaps.Add的架构: String xml; //This is already populated with an XML String; I want to get the schema based on the xml structure Workbook w = Globals.ThisAddIn.Application.ActiveWorkbook; w.XmlMaps.Add(***Need schema here***, “root node”); 是否可以在此以编程方式生成架构? 我从Web服务接收此XML字符串。

使用C#退出excel(使用excel自动化时)

我正在使用c#来读取/写入excel电子表格中的数据。 我正在使用这三个语句来打开我的excel文件 Excel.Application excelapp = new Excel.Application(); Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet; Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet; 并且这两行用于关闭/保存工作表。 workbook.Save(); workbook.Close(); 我遇到的问题是EXCEL进程仍处于活动状态。 (我使用任务管理器进行检查。)在读取/写入数据到工作表后,我有20个EXCEL进程处于活动状态。 如果有人能在我关闭工作簿之后立即向我展示一个结束excelapp proc的技术。 非常感谢,亚伦。

用C#编写的COM加载项与自动加载项的可选参数

我正在开发一个COM加载项和Excel自动化加载项库,其核心代码是用C#编写的。 我想为函数设置一个可选参数,我知道这对于C#和VBA,甚至Excel WorksheetFunction都是合法的。 但我发现最终可选参数专门用于COM和自动化加载项,这意味着如果首先运行一个加载项,那么效果很好,但另一个加载项的可选参数将不起作用。 下面请看示例: 在VS 2013解决方案中,我有两个项目:一个名为TestVBA ,另一个名为TestExcel 。 TestVBA用于COM加载项并通过“Excel 2013加载项”构建,并且有两个.cs文件: ThisAddIn.cs 此文件自动生成并稍作修改。 代码是 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; using Excel = Microsoft.Office.Interop.Excel; using Office = Microsoft.Office.Core; using Microsoft.Office.Tools.Excel; namespace TestVBA { public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { } private void ThisAddIn_Shutdown(object sender, System.EventArgs […]

ConnectionString用于获取Excel文件问题

在名为(ExcelFiles)的文件夹中有一个Excel文件命名(a.xlsx)。 ExcelFiles文件夹位于我的项目的根目录中。 所以我获取excel文件数据的连接字符串是这样的: aaa =我的项目名称 使用此连接字符串,每个东西在本地都可以,但上传网站后我有一个错误。 问题出在哪儿?? 这条路是真的 – >〜/ ExcelFiles / a.xlsx与否 你能解决这条道路吗我… 解决路径问题后,错误是这样的: The ‘Microsoft.ACE.OLEDB.12.0’ provider is not registered on the local machine. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the […]

如何使用.NET将Excel中的格式化单元格复制到Word中的表格单元格?

我试图一次一个地将单元格从Excel 2003(或2007)电子表格复制到Word 2003(或2007)表格。 我希望代码与版本无关,所以我使用后期绑定。 需要保留Excel单元格内容的格式,例如颜色,下划线,删除线。 我的方法是使用Word doc作为模板。 它在顶部有一个表格,我可以将其复制到文档的末尾,根据需要添加行,并使用excel电子表格中的数据填写单词表格单元格。 不幸的是,所有格式都消失了。 我得到的只是文本本身。

如何在不使用Interop的情况下将VBA代码注入Excel .xlsm?

我的目标是将宏添加到Excel工作簿,而无需在Excel信任中心中启用“信任访问VBA项目对象模块”。 (启用访问似乎存在安全风险)。 在我最初的事实查找搜索中找到了随机拼图: – 我看到VBA脚本作为vbaProject.bin存储在压缩的.xlsm文件中。 – 有几个免费/商业资源可以使用excel文件: 创建excel没有interop和模板,有或没有行和列 如果只是在C#项目中有一个VBA脚本文件,C#代码从中提取并注入Excel文档而没有VBA互操作,那将是很好的。 任何快速/快速/简单/直接的方式,或者我应该使用上面链接的免费/商业资源吗?

比较两个excel文件的差异

我想比较两个输入csv文件,看看是否有添加或删除的行。 什么是最好的方法来解决这个问题。 我没有使用列名,因为列的名称对于所有文件都不一致。 private void compare_btn_Click(object sender, EventArgs e) { string firstFile = firstExcel_txt.Text; var results = ReadExcel(openFileDialog1); string secondFile = secondExcel_txt.Text; var results2 = ReadExcel(openFileDialog2); } 读: public object ReadExcel(OpenFileDialog openFileDialog) { var _excelFile = new ExcelQueryFactory(openFileDialog.FileName); var _info = from c in _excelFile.WorksheetNoHeader() select c; string header1, header2, header3; foreach (var item in […]