Tag: c# 4.0

如何获得Active Workbook?

我正在尝试在我的应用程序(VSTO)中获取Workbook: ExcelViewModel mb = new ViewModels.ExcelViewModel(); string NameBox = mb.Workbooks.First().Name; 所以当Excel打开时,它已经有了默认的工作簿:Book1.xlsx我打开例如第二个工作簿(example.xlsx),但是我的stringNameBox返回“Book1”。 我怎样才能得到有效的工作簿? 对于我的例子是“example.xlsx”之一。 ExcelViewModel只是返回一个所有工作簿的ObservableCollection。 谢谢。

Excel加载项中的Application.ActiveWorkbook为空

我正在写一个Excel加载项。 以下是我的代码 private void ThisAddInStartup(object sender, EventArgs e) { Excel.Sheets sheets = Application.ActiveWorkbook.Sheets; _worksheet = (from Excel.Worksheet sheet in sheets where sheet.Name.Contains(SheetName) select sheet).FirstOrDefault(); Application.SheetChange += ApplicationSheetChange; } 当我debugging时,一切都很好。 但是,当我直接从我的硬盘驱动器打开Excel文件,然后我得到Application.ActiveWorkbook为null 。 任何人都可以帮助我理解这一点。 我想在excel文件打开时启动我的加载项。 基本上我的加载项跟踪Excel工作簿中的变化,并做一些必要的行动。 如果有问题,我正在使用Office 2007,Visual Studio 2012.我可以在更改项目文件并用12replaceOffice 14部分后运行解决scheme。

EPPlus – 读取Excel表格

使用EPPlus,我想读取一个Excel表格,然后将每一列中的所有内容存储到相应的List 。 我希望它能够识别表格的标题,并根据这些内容对内容进行分类。 例如,如果我的Excel表格如下所示: Id Name Gender 1 John Male 2 Maria Female 3 Daniel Unknown 我希望数据存储在List<ExcelData>中 public class ExcelData { public string Id { get; set; } public string Name { get; set; } public string Gender { get; set; } } 这样我可以使用标题名称调出内容。 例如,当我这样做: foreach (var data in ThatList) { Console.WriteLine(data.Id + data.Name + […]

创buildExcel加载项 – 获取单元格值

我正在使用visual studio 2010创build一个excel插件。我能够使用这个代码获取单元格地址。 label1.Label = Globals.MyAddIn.Application.ActiveCell.Address.ToString(); 我想获得细胞价值。 另外,如果你可以告诉我如何为给定单元格设置一个值。 请帮忙。

导出列表<float>到excel文件

我有一个列表包含所有浮点值(让我们说List < float > avgDifClosedLoop;) 现在要做更多的过程,我想在Excel中导出它们。 我怎么能通过C#做到这一点?

C#Transpose()方法来转置Excel表中的行和列

我想转置Excel表格的行和列,并保存它。 我想为此使用C#的转置()方法。 任何人都可以告诉它如何在C#中使用例子,什么是语法,创build什么对象来调用transpose()方法? 谢谢。

使用C#从excel中写入文本文件

在C#中使用Visual Studio 2010新手,并尝试从Excel工作表获取文本文件中的输出。 Excel工作表只包含一个像这样的数值的列: ColumnA ——- 222 333 444 555 666 777 888 999 877 566 767 678 767 我正在试图得到这样的文本文件中的输出: 222, 333, 444, 555, 666, 777, 888, 999, 877, 566, 767, 678, 767 提前致谢。

如何更新数百个excel文件中的macros?

我们在工作中有一个共享文件夹,用户打开一个Excel工作簿,填写数据,然后运行一个macros来创build一个子文件夹,并将该工作簿的一个版本复制到该文件夹​​中。 子文件夹和新工作簿是根据input到表单中的数据命名的。 在将来打开新工作簿的某个时间,会在子文件夹中创build工作簿的修订版本和新版本(带有修订名称)。 冲洗并重复。 这是上帝可怕的。 这些自我复制的borg excel电子表格容易存在。 最大的摩擦? 在macros中根path的硬编码path。 现在,根文件夹必须移动。 我自己并不是一个优秀的用户,但我需要解决这个问题。 有什么我可以写在.net(或其他任何东西)走根和子文件夹,并更新每个Excel文件它发现改变path? 当然,没有损害每个电子表格中的数据? 任何帮助赞赏。 编辑:(所以你不需要我的意见)下面的解决scheme@ brettdj开箱即用。 对于我的情况,我没有将其从Sub Main()移出,我需要从他的示例中更改以下行: bFound = .Find("C:\test\xxx", SL, SC, EL, EC, True, False, False) 至 bFound = .Find("C:\test\xxx", SL, SC, EL, EC, False, False, False) 我相信这会改变发现不匹配整个字。 我有一个额外的问题的密码保护的VBA项目,我目前还没有解决,但@brettdj已经提出了这个可能的解决scheme 。 编辑2:VBA项目密码解决scheme的作品! 我还将@brettdj代码示例移动到vb.net项目中,现在可以遍历超过400k的所有文件,检查是否需要密码,如果解锁,则search代码以find违规行,如果find,则replace它,然后保存,如果修改。 总的来说,酷豆。

如何从Excel电子表格中读取单个列?

我正在尝试从Excel文档读取单个列。 我想阅读整个专栏,但显然只存储有数据的单元格。 我也想尝试处理这种情况,列中的某个单元格是空的,但是如果列中的某个单元格更靠后,它将在稍后的单元格值中读取。 例如: | Column1 | |———| |bob | |tom | |randy | |travis | |joe | | | |jennifer | |sam | |debby | 如果我有这个列,我不介意在joe后面有一个""的值,但是我希望它能够在空白单元之后继续获取值。 但是,假设debby是列中的最后一个值,我不希望它继续超过debby 35,000行。 假设这将永远是第一列也是安全的。 到目前为止,我有这样的: Excel.Application myApplication = new Excel.Application(); myApplication.Visible = true; Excel.Workbook myWorkbook = myApplication.Workbooks.Open("C:\\aFileISelect.xlsx"); Excel.Worksheet myWorksheet = myWorkbook.Sheets["aSheet"] as Excel.Worksheet; Excel.Range myRange = myWorksheet.get_Range("A:A", Type.Missing); foreach […]

Excel插入行(不是添加)

我有一个采购订单的Excel '07模板文件。 在模板上,只有3行值的项目的空间,然后模板显示总计。 所以,基本上,在模板中有:第19行 – 第20行 – 第21行 – 第22行 – 项目总数 显然,大多数购买将有超过3项,但。 那么在打印3个项目之后,如何在21和22之间插入一行呢? 编辑; 所以这就是我所拥有的: xlApp.Workbooks.Open(template, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue); int row = 19; if (poDetailBO1.MoveFirst()) { do { itemsBO3.FillByPK(poDetailBO1.Style); if (row < 22) { xlApp.Cells[row, 1] = poDetailBO1.LineNo; xlApp.Cells[row, 2] = itemsBO3.Factory; xlApp.Cells[row, […]