Tag: excel interop

如何从Excel工作表中删除隐藏的列/行?

我想从Excel工作表中删除所有隐藏的列,我正在使用Microsoft Office Interop 。 问题是当我遍历列我没有find列隐藏属性设置。 我不知道我在这里做错了什么。 任何帮助,将不胜感激 int columnCount = wsCurrent.UsedRange.Columns.Count; Excel.Worksheet wsCurrent = (Excel.Worksheet)wsEnumerator.Current; for (int c = 1; c <= columnCount; c++) { if (wsCurrent.UsedRange.get_Range((Excel.Range)wsCurrent.UsedRange.Cells[1, c], (Excel.Range)wsCurrent.UsedRange.Cells[wsCurrent.Rows.Count, c]).EntireColumn.Hidden) Console.WriteLine("Column Hidden"); }

如何忽略自动分页符?

我正在使用Excel Interop创build报告。 我正在试图编程设置分页符。 我已经成功地通过使用: this.ActiveWorksheet.HPageBreaks.Add(this[row + 1, 9].Range); this.ActiveWorksheet.VPageBreaks.Add(this[row + 1, 8].Range); (这个[row … col]代码引用了我们的基本Excel生成器,但是最终引用了给定列/行的范围)。 当报告生成时,我可以看到我手动添加的分页符; 然而自动分页仍然显示,他们在错误的地方,所以最终这使得我的代码无用。 我只需要使用我的分页符而忽略自动分页符。 有可能吗? 我试过重置分页符无济于事。 我也尝试在工作表页面设置属性上设置FitToPagesWide属性,但没有运气。

Excel图表 – 没有得到传说

我正在创build一个使用C#(互操作)的Excel图表。 我使用get_Range函数从Excel中的数据表中获取它。 我得到正确的graphics。 但是我没有得到图中旁边的传说名字 ,它是作为系列0,系列1而来的。 我正在使用folowing代码。 Range chartRange; Object misValue = System.Reflection.Missing.Value; ChartObjects xlCharts = (ChartObjects)sheet0.ChartObjects(Type.Missing); ChartObject myChart = (ChartObject)xlCharts.Add(10, 70, 250, 250); Chart chartPage = myChart.Chart; Chart chartPage1 = myChart.Chart; chartRange = sheet0.get_Range("$G$45:$G$54,$AT$45:$AT$54", misValue); chartPage.SetSourceData(chartRange, misValue); chartPage.ChartType = XlChartType.xlColumnClustered; chartPage.Location(XlChartLocation.xlLocationAsNewSheet, "Chart"); 我在get_Range方法中更改图表中的图例名称? 先谢谢你。

如何使用Microsoft.Office.Interop.Excel从List <string>创buildExcel文件

我有一个值列表,我也有一个文本框,我必须写一个数字,然后我需要build立一个Excel与许多表中的值来自列表。 换句话说,例如:列表有1000个值,然后我在文本框中input100,所以我需要生成一个Excel文件,其中包含很多工作表,因为这些值是在列表中迭代input到文本框中的值一个Excel文件10张,每个工作表100个单元格。 很明显? 我怎样才能使用Microsoft.Office.Interop.Excel做到这一点?

Excel Interop 10.0中的数组移调在字符数<32000时引发exception

问题: 我正在使用ExcelWorksheetFunction 转置 object[] colValues = null; colvalues = … // Initialize and assign some string values to array and its length/count is greater than 0 mySheet.Range(startCellNumber, endCellNumber).Value = mySheet.Application.WorksheetFunction.Transpose(colValues); 以前这是当string长度(不是数组长度)是~ 159,000时引发exception。 我们在这里看到它说"Total number of characters that a cell can contain"是32767 。 我们将string的长度缩短为32000,并且在Office 2010/2013上工作正常, 但在Office 2007上失败,即使其限制也是32767 。 例外: Exception from HRESULT: 0x800A03EC –Stack Trace– at […]

search关键短语的工作簿并将其复制到新的工作簿中

我需要在工作簿中search几个关键短语(总是在标题行中),当find该短语时,将整个列复制到一个新的工作簿中,然后继续查找下一个短语。 当我录制我的macros时,这是它给了我的东西,但关键短语可能并不总是在B列,所以这可能会很快发生! 我的项目的范围是find这些关键字,直到最后一行select列的数据,并复制到一个单独的工作簿。 我将合并6 – 7个工作簿。 Cells.Select Selection.Find(What:="Emp Name", After:=ActiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate Columns("B:B").Select Selection.Copy

打开受密码保护的Excel文件时禁用密码对话框

我有很多Excel文件受一些已知的密码保护。 我想以编程方式解除所有保护 。 我的问题是, 当我打开一个文件,使用一些错误的密码,它显示密码对话框,并等待用户input 。 DisplayAlerts = false; 不起作用。 如果我的密码错误,如何避免密码对话框 ? 有什么build议么? 我目前的代码: using Excel = Microsoft.Office.Interop.Excel; bool TryUnprotectFile(string filePath, string trialPassword) { Excel.Application excelApp = new Excel.Application(); excelApp.DisplayAlerts = false; // when password is wrong, then it waits here for user input: Excel.Workbook wb = excelApp.Open(filePath, Password: trialPassword, IgnoreReadOnlyRecommended: true, Notify: false); // […]

使用click once on non dev pcs从GAC中缺lessMicrosoft.VisualStudio.OfficeTools.Controls.ManagedWrapper

我们在应用程序中使用Microsoft.Office.Interop.Excel和Microsoft.Office.Tools.Excel将datagrid导出到Excel。 我们也使用一次点击部署,现在clickonce说应用程序需要Microsoft.VisualStudio.OfficeTools.Controls.ManagedWrapper安装在GAC中。 通常,当我们得到这个错误时,通常可以将dll添加到项目中,或者有人忘了在dll上设置一个属性 – 但是这个dll是不同的 – 它已经在我的电脑的GAC中,在C:\ WINDOWS \程序集和文件不能被删除。 得到这个文件并将其添加到我的项目中的正确方法是什么? 我已经看到需要registry编辑的事情,以及“从gac中获取dll”的东西,但是这是必要的吗? 编辑:这是一个C#WPF项目。

每次读取Excel工作表时使用并行foreach的不同结果

Imports System.IO Imports System.Threading Imports System.Threading.Tasks Imports System.Collections.Concurrent Imports Excel = Microsoft.Office.Interop.Excel Public Class TestCarDatas Public Property RowID As Integer Public Property ModelYear As Integer Public Property VehMfcName As String Public Property EmgVeh As Boolean End Class Module ExcelParallelDataGather2 Public Const ExcelVehDataPath As String = "D:\Users\Dell\Desktop" Public rwl As New System.Threading.ReaderWriterLock() Public rwl_writes As Integer […]

无法从SSIS包作业打开xlsm文件

我有一些SSIS作业打开一些Excel文件并操作它们。 作业中打开Excel文件的任务在每个作业中基本相同,只是指向一个不同的Excel文件。 这些工作除了一个以外都能正常工作。 但是,即使这个从包中手动运行,而不是在工作。 适用的代码是: Dim reportLocation As String Dim oXL As Microsoft.Office.Interop.Excel.Application Dim oWB As Microsoft.Office.Interop.Excel.Workbook reportLocation = "\\testlocation\share\test.xlsm" 'Open Excel instance oXL = New Microsoft.Office.Interop.Excel.Application oXL.Visible = False 'Open the Excel file to edit oWB = oXL.Workbooks.Open(reportLocation) 'Error here 收到的错误如下: Microsoft Excel不能访问文件'\\ testlocation \ share \ test.xlsm'。 有几个可能的原因: ?文件名或path不存在。 •该文件正在被另一个程序使用。 ?试图保存的工作簿与当前打开的工作簿具有相同的名称。 在Microsoft.Office.Interop.Excel.Workbooks.Open(string文件名,对象更新链接,对象ReadOnly,对象格式,对象密码,对象WriteResPassword,对象IgnoreReadOnlyRecommended,对象源,对象分隔符,对象可编辑,对象通知,对象转换器,对象AddToMru,Object Local,Object […]