Tag: 互操作

程序终止后,Excel进程仍在运行

我写了一些从Excel文件中读取并输出Excel文件的C#程序。 但是,我注意到在一天结束的时候,在程序终止并且所有文件都closures之后,我仍然有大量的Excel进程正在运行。 以下是我如何处理文件的创build和closures: Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; … wb.Close(true, saveDirectory + "\\" + reportName, false); xlApp.Quit(); Marshal.ReleaseComObject(wb); Marshal.ReleaseComObject(xlApp); this.Close(); 我错过了什么吗? 任何意见表示赞赏。 问候。

互操作 – 将Excel图表的范围设置为整行

如何将excel互操作图的源数据设置为几行? 我有一个.csv文件是由我的程序创build的,显示一些生成的结果。 为了简单起见,让我们说这些结果和图表是这样显示的:(这正是我想要的) 现在我遇到的问题是人数是可变的。 所以我真的需要访问整个行数据。 现在,我正在这样做: var range = worksheet.get_range("A1","D3"); xlExcel.ActiveChart.SetSourceData(range); 如果你只有三Persons ,这很好,但我需要访问整行数据。 所以要重申我的问题,我怎样才能将我的图表的源数据设置为几个完整的行? 我试着在这里看,但似乎无法使行而不是列的工作。

从Excel范围获取最大行数/列数

我有一定的Range ,例如: Range rng = activeWorksheet.Range["A1", "B50"]; 我一直在检索这个Range使用的最大行数和列数,循环遍历它并为我的variables赋一个行号,但是一定有更好的办法吗? 我一直在这样做: int maxRow = 0; foreach (Range row in rng.Rows) maxRow = row.Row;

Excelreplace所有find的字符

我一直在尝试使用winform应用程序replaceExcel工作表中的所有“#”… 我尝试了这样的事情 Excel.WorksheetClass excelWorksheet = (Excel.WorksheetClass)application.Worksheets[1]; excelWorksheet.Cells.Replace(@"\", "", Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns, false, Type.Missing, false, false); 但它只是取代单元格中单独的那些“#”,如果单元格值是“#ABC”,那么它不会取代,Excel中的高级选项允许这样做,但我怎样才能使用Iterop类。 问候

如何使用Excel PIA设置活动工作表

我在我的Excel应用程序中使用多个工作表,并希望在退出时激活(设置焦点)的特定工作表。基本上我想在我的工作簿上设置ActiveSheet属性,但由于该属性是只读的,有没有其他的方式来做到这一点? 谢谢, 山姆

CSV导出与互操作

我正在使用这段代码来生成一个Excel文件。 将导出更改为CSV文件应该很简单,只需修改saveAs调用中的参数即可,但不起作用。 任何ideea为什么? Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = false; if (xlApp == null) { MessageBox.Show("EXCEL could not be started. Check that your office installation and project references are correct."); return false; } Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); try { if (details != false) { //Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); wb.Worksheets.Add(); Worksheet detailsWs = (Worksheet)wb.Worksheets[2]; for […]

使用interop在Excel中设置数字格式

使用下面的方法,我可以在一个Excel文件中加载一行。 一旦所有的行都加载到Excel中。 一列包含字母数字字符,如果单元格内容是数字,则将其alignment到左侧,否则alignment右侧。我需要始终alignment右侧。 我想将单元格的格式更改为文本。 private void AddExcelRows(string startRange, int rowCount,int colCount, object values) { _range = _sheet.get_Range(startRange, _optionalValue); _range = _range.get_Resize(rowCount, colCount); _range.set_Value(_optionalValue, values); } 如何设置单元格格式为文本?

我如何从Excel工作簿打开多个工作表?

我正在编写一个程序来填充Excel工作簿中的数据,但目前我只能访问第一个工作表。 有了这个testing,我不能得到sheet2和Sheet3接收任何数据? 请有人指出我错过了什么? Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet[] xlWorkSheet = new Excel.Worksheet[3]; object misValue = System.Reflection.Missing.Value; private void Form1_Load(object sender, EventArgs e) { if (File.Exists("C:/Users/Shaun/Documents/Template.xls")) { //Load Templete SpreadSheet xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open("Template.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet[0] = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet[1] = […]

使用Excel Interop打开一个巨大的.csv文件

我有一个应用程序写入大小从1 GB到2 GB的巨大.csv文件。 我需要对文件进行颜色编码并将其保存为.xlsx。 所以我已经尝试过使用Excel Interop,它对于小文件非常适用,但是当我尝试使用Excel打开一个1.3 GB的.csv文件时,出现Hresult错误。 任何有关如何使用Excel来完成此任务的想法,或者是否有其他方法来完成此任务。

在Web应用程序中使用Excel进行计算

我已经inheritance了一个大型的Excel电子表格,它使用任意数量的模拟表进行一些财务计算魔术,并且被要求编写一个Web应用程序作为前端。 现在我可以花费无数的时间来弄清楚表单,或者我可以从我的web应用程序调用excel表单。 我似乎需要Office主互操作程序集,但是我还需要在Web服务器上安装office / excel吗? 我怎样才能处理多个同时请求到同一张表? 这种方法甚至可能吗?