Tag: excel

Excel VBA项目未关闭

我有一个COM插件,我在其中处理excel事件。 我单击Alt F11以查看与excel相关的VBA项目。 但是,当我关闭工作簿时,项目资源管理器中的Excel VBA项目也不会关闭。 当我的COM插件未安装时,它会正常关闭。 发生了什么,我应该做些什么?

Excel接受一些字符,而OpenXml有错误

我有一个字符串,我想在excel文件中使用C#中的openxml组件导出。 我的文字有’\ u001f’字符,openxml有这个字符的错误。 错误文本:“hex值0x1f,是无效字符”。 我将该测试直接复制到excel并没有问题,复制成功。 OpenXml是否有解决此问题的配置或如何解决此问题。 谢谢。

如何在Open XML工作表中插入日期?

我正在使用Microsoft Open XML SDK 2,我很难在单元格中插入日期。 我可以通过设置Cell.DataType = CellValues.Number来插入数字而没有问题,但是当我对日期( Cell.DataType = CellValues.Date )执行相同操作时,Excel 2010会崩溃(2007年也是如此)。 我尝试将Cell.Text值设置为多种日期格式以及Excel的日期/数字格式无济于事。 我还尝试使用样式,删除type属性,以及我扔在墙上的许多其他比萨… 有人能指出我在工作表中插入日期的例子吗?

OpenXML SDK将VBA注入excel工作簿

我可以成功地将一段VBA代码注入到生成的excel工作簿中,但我要做的是使用Workbook_Open()事件,以便在文件打开时执行VBA代码。 我将sub添加到我的xlsm模板文件中的“ThisWorkbook”对象。 然后,我使用openxml生产力工具来反映代码并获取编码的VBA数据。 生成文件并查看VBA时,我看到“ThisWorkbook”和“ThisWorkbook1”对象。 我的VBA位于“ThisWorkbook”对象中,但代码永远不会在打开时执行。 如果我将我的VBA代码移动到“ThisWorkbook1”并重新打开该文件,它可以正常工作。 为什么要创建一个额外的“ThisWorkbook”? 是否无法使用Workbook_Open()子系统注入excel电子表格? 这是我正在使用的C#代码的片段: private string partData = “…”; //base 64 encoded data from reflection code //open workbook, myWorkbook VbaProjectPart newPart = myWorkbook.WorkbookPart.AddNewPart(“rId1”); System.IO.Stream data = GetBinaryDataStream(partData); newPart.FeedData(data); data.Close(); //save and close workbook 有人有想法吗?

如何将Excel工作表添加到控制台应用程序

任何人都可以解释在C#中添加excel文件的过程,对此有什么要求? 是否有必要在系统中安装MS Excel以便在C#中使用Excel

DateTime.Now.ToString(“MM / DD / YYYY”)包含不正确的月份

所以我一直在将DateTime.Now.ToString(“MM/DD/YYYY”)到List(以及一堆其他数据),然后将这些列表写入Excel工作簿中的各个行。 这一切都很好(这是我经常做的事),除了月份。 我尝试过三次出口,每次我得到一个不同的月份; 第一次56 / 26-17,第二次2017年2月26日,第三次14/26/2017 ….

SSIS – 将OLEDB连接的Excel文件移动到存档

我使用Microsoft Office 12.0 Access Database Engine OLE DB Provider作为Excel架构创建了一个连接,以循环遍历Excel文件中的所有工作表,如此问题中所示如何使用SSIS包循环Excel文件并将其加载到数据库中? 并使用Foreach ADO.NET Schema Rowset Enumerator循环遍历excel文件。 现在一切正常,但从Excel导入数据后,我想将该文件移动到Archive文件夹。 并尝试使用File System Task ,但我得到错误 [文件系统任务]错误:出现以下错误消息时出错:“进程无法访问该文件,因为它正被另一个进程使用。” 我也试过这个链接的脚本任务。 但我得到了一些错误,无法解决错误,因为我对C#一无所知。 下面是我尝试使用脚本任务移动文件时遇到的错误。 在System.ReflectionMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor)at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments)at System.Reflection.RuntimeMethodInfo。 System.RuntimeType.InvokeMember的Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs,ParameterModifier [] modifiers,CultureInfo culture ,String [] namedParams)在Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()。 更新 : […]

OleDB读取Excel十进制值

我使用OleDB Ace 12来读取包含带小数值的列的Excel(xslx)表。 当我在PC上打开Excel工作表时,十进制值的格式正确为1.850,50 (使用逗号作为小数分隔符的NLD文化) 当我使用OleDB(C#4.0)读出Excel表格时,该字段的字符串值始终为1,850.50 (美国格式) 我已经尝试设置我填充的DataSet的Locale,设置currentthread的文化等等,但是填充了OleDB适配器的DataSet总是返回US格式的小数。 我可以在阅读时更改格式化值的方式吗? 或者无论如何它总是美国格式?

将管道分隔的文本文件转换为.CSV excel文件时,行会搞乱

我编写了这个函数,它将所有管道转换为逗号,然后将其转换为excel .CSV文件。 但是,之后我意识到某些行存在一些问题。 例如姓名[Chua Wei Loon](据说是在一栏中),最后“Chua Wei”在一栏中,“Loon”在下一栏。 我查看了文本文件,发现名称之间没有管道,我找不到解决方案。 下面是我的函数代码: protected void SaveAsExcelBtn_Click(object sender, EventArgs e) { //string strExcelOutputFilename = “C:/Documents and Settings/rhlim/My Documents/” + DateTime.Now.ToString(“yyyyMMddHHmmss”) + xlExtension; // Before attempting to import the file, verify // that the FileUpload control contains a file. if (TextFile.HasFile) { // Get the name of the Excel spreadsheet. string […]

Excel Interop中的“AutoFilter”是否有“姐妹”function,适用于列而不是行?

Excel Interop中的“AutoFilter”function允许您过滤列显示下方行中的数据。 我需要一个类似的function,允许用户选择要隐藏的列。 例如,具体而言,如果有一组列3..15(C..0)从“9月15日”到“9月16日”,它们之间有明显的月份(“10月15日”等)我希望用户能够选择要查看的那些列的任何子集。 被取消选择的人会“消失” 如何实现这一目标? 我尝试了以下,但第二个filter没有效果: private void AddFilters() { Range column1Row6 = _xlSheet.Range[_xlSheet.Cells[6, 1], _xlSheet.Cells[6, 1]]; column1Row6.AutoFilter(1, Type.Missing, XlAutoFilterOperator.xlAnd, Type.Missing, true); // Try to filter columns, too (not the contents, but which columns display) Range columns3And4 = _xlSheet.Range[_xlSheet.Cells[6, 3], _xlSheet.Cells[6, 15]]; columns3And4.AutoFilter(1, Type.Missing, XlAutoFilterOperator.xlAnd, Type.Missing, true); } 这可能吗? UPDATE 看一些遗留代码,看起来这段代码就是这样做的: var fld = […]