我有一个针对Excel的VSTO项目。 我也有用C#编写的WinForm应用程序。 这一切都使用.Net Framework 4和VS 2010在C#中编程。 我的问题是,我希望能够调用这个VSTO应用程序,而无需首先打开Excel。 所以我会点击我的WinForm应用程序中的一个button,它应该启动Excel并调用VSTO,然后将从我的数据库中读取并将一些值放入Excel工作表。 有没有这样做的官方方式,如果没有,至less有一个解决方法?
我正在尝试在Excel 2013中为图表添加样式,但只会改变颜色: Range chartRange; ChartObjects wsCharts = (ChartObjects)workSheet.ChartObjects(Type.Missing); ChartObject myChart = (ChartObject)wsCharts.Add(0, 0, 900, 500); Chart workChart = myChart.Chart; chartRange = workSheet.get_Range("A1", "D12"); workChart.SetSourceData(chartRange, Type.Missing); workChart.ChartType = XlChartType.xlColumnClustered; 现在图表看起来像这样: 然后workChart.ChartStyle = 8; 将酒吧的颜色更改为: 而不是图表的风格: 我也尝试使用ChartWizard方法和Chart其他属性,但目前为止没有运气。
有人能给我一个线索,我怎么能得到Excel数据的快速访问。 目前,excel包含超过200K条logging,当我从X ++代码中检索时,需要花费大量时间来检索所有logging。 以下是我用来检索数据的类。 1 – SysExcelApplication,SysExcelWorksheet和SysExcelCells。 我正在使用下面的代码来检索单元格。 excelApp.workbooks().open(filename); excelWorksheet = excelApp.worksheets().itemFromName(itemName); excelCells = excelWorkSheet.cells(); ///pseudo code loop excelCells.item(rowcounter, column1); similar for all columns; end of loop 如果需要在这里设置任何特殊的财产,请告诉我。
我正在使用2012年11月发布的用于Visual Studio 2012的Office开发工具为Excel 2013开发VSTO插件。 我有一个工作表的参考,我想访问一个范围内的单元格的值。 这应该是一个简单的任务,但由于某种原因,我试图访问的单元格实际上比范围高一行。 我不确定是什么原因造成的,或者如果我以错误的方式来解决这个问题。 下面的简单例子解释了我看到的行为。 var dataEntrySheet = (Worksheet)Globals.ThisAddIn.Application.Worksheets["Data Entry"]; var rangeAddress = dataEntrySheet.Range["A2"].Address var cellAddress = dataEntrySheet.Range["A2"].Cells[0].Address 以上的结果是: rangeAddress =“$ A $ 2” cellAddress =“$ A $ 1” 有谁知道这是为什么发生?
我正在使用下面的一段代码添加超链接到一个给定的单元格(这里"A1" ): Workbook workbook = _excelApp.Workbooks.Open("C:\\temp\\test1.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; Range rangeToHoldHyperlink = worksheet.get_Range("A1", Type.Missing); string hyperlinkTargetAddress = "www.bing.com"; Range excelRange = worksheet.UsedRange; object[,] valueArray = (object[,])excelRange.get_Value( XlRangeValueDataType.xlRangeValueDefault); worksheet.Hyperlinks.Add( rangeToHoldHyperlink, hyperlinkTargetAddress, string.Empty, string.Empty, valueArray[1, 1].ToString()); 它添加了超链接。 但是,点击它,它说: Reference not valid 将鼠标hover在单元格文本上时,会将超链接显示为: […]
我有一个查找function,看起来像这样: public static int FindRowThatContains(Excel.Worksheet ws, string what) { int result = 0; Excel.Range rng = ws.Cells.Find(what, Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Type.Missing, Excel.XlSearchDirection.xlNext, false, Type.Missing, Type.Missing); if (rng != null) result = rng.Row; return result; } 当包含我正在查找的数据的单元格不被隐藏,但是当search到的单元格丢失时失败。 有没有办法在search中包含隐藏的单元格? 谢谢
我有一个Excel工作表,有一些combobox和checkbox。 我正在尝试阅读他们select的值。 我的代码工作正常,如果有checkboxcombobox和崩溃,因为它们中没有ListFillRange。 如何获取形状的形状types,以便我的函数GetControlValue可以返回所有控件types的值。 foreach (Excel.Shape s in ws.Shapes) { string value = GetControlValue(ws, s.Name); } private string GetControlValue(Excel.Worksheet ws, String shapeName) { var selValue = ws.Shapes.Item(shapeName).ControlFormat.Value; //the fill range var r = ws.Shapes.Item(shapeName).ControlFormat.ListFillRange; var oRng = ws.Range[r]; var selectedValue = oRng.get_Item(selValue).Value; return selectedValue; } 还有一个MsoShapeType枚举,但它总是返回msoFormControl
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = app.Workbooks.Open(fname); Worksheet ws = wb.Worksheets[1]; // read some data var Monday = ws.get_Range("D11"); var Tuesday = ws.get_Range("D13"); 我正在使用Microsoft.Office.Interop.Excel检索从Excel工作表工作小时。 我的代码似乎正常工作,但我不断得到Monday和Tuesday的值COM Object 。 为什么它不从我的电子表格中返回单元格D11和D13中的实际值? 我也得到了相同的COM Object的ws和wb值,不知道这是否有任何相关性,我只是把它扔在那里。
我想在MATLAB中打开和closures一个Excel文件。 我已经尝试了下面的代码 ,但它closures与actxserver进程失败 h.WorkBooks.Item(wbkname).Close; 这里是我的代码这个问题,我怎样才能终止的Excel文件? .Quit .delete 我也尝试通过VBA子模块来closuresexcel文件,但它给了我一个错误信息: fullFileName = [pwd '\KOSPI200_1월.xlsm']; excel = actxserver('Excel.Application'); file = excel.Workbooks.Open(fullFileName); excel.Run('jongho_bot_initial'); excel.Run('jongho_bot_loop',2);
IHI我正在尝试读取平面文件n以优秀。 我能够使用数据表生成Excel文件,但date字段显示为#####。 我正在尝试更改单元格的格式,但无法达到此目的。 我已经添加了代码以供参考。 请引导我,因为我需要从这个生成的表格与公式一起创build另一个工作表。 最有趣的事情是我看到date 在这张表上,但如果我复制这些数据在另一张纸上,我可以看到date字段,而不是#####。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.IO; using Microsoft.Office.Interop.Excel; using System.Threading.Tasks; using System.Reflection; namespace report { class Program { static void Main(string[] args) { string path = @"flat.txt"; //Flat file System.Data.DataTable table = ReadFile(path); Excel_FromDataTable(table); } private static System.Data.DataTable ReadFile(string path) { System.Data.DataTable […]