我有一个已经在逗号分隔值(csv)格式的.txt文件。 我想将作为工作表的.txt文件中的数据添加到打开的Excel工作簿中。 这是我如何打开工作簿: var xlApp = new Excel.Application { Visible = false }; Excel.Workbook newWorkbook = xlApp.Workbooks.Add(Type.Missing); 这就是我如何将.txt文件添加到工作簿: string txt2xls = Globals.HomeDir + "\\JSL\\Data1" + ".txt"; string csv2xls = Globals.HomeDir + "\\JSL\\Data1" + ".csv"; if (File.Exists(csv2xls)) File.Delete(csv2xls); File.Move(txt2xls, Path.ChangeExtension(txt2xls, ".csv")); newWorkbook.Sheets.Add(csv2xls, Type.Missing, Type.Missing, Type.Missing); 最后一行给了我一个错误(HRESULT:0x800A03EC)。 我能做些什么来解决这个问题? 谢谢!
我一直在寻找解决办法,但似乎我找不到它。 所以基本上,我想select例如H2,然后运行macros。 然后它应该复制/粘贴一些特定的单元格到一个新的CSV文件,例如O2和F2。 我也想要一个永远在那里的固定值,叫做“不”。 CSV文件的第一行应该是“UTF-8”。 下一个(CSV中的第二行)应该是一些固定的标题,就像UTF-8一样。 解决方法是将所有相关的数据复制到另一个正确的格式,然后将该表单导出为CSV格式? 插图: "UTF-8" "Name","ID","Email","Customer" "H2","O2","F2","No"
如何使用vba将Powerpivot连接修改为csv文件? 我有一个Excel工作簿,连接到一个csv文件的Powerpivot模型。 在Powerpivot窗口中,我可以导航到Home-> Existing Connections并根据需要编辑文件path。 我不能接近编辑这个vba。 我发现这个链接参数化Powerpivot连接。 不幸的是,我不知道如何修改应用到CSV文件连接,而不是数据库连接。 在这个页面上描述了另一种方法。 这种方法创build了一个连接到Excel本身的数据。 这个连接在Powerpivot中是可用的。 关键是不要在Powerpivot bc中创build连接,作者说在Powerpivot中创build的连接不能被vba修改。 我可以通过数据 – Data->Get External Data->From Text menu option手动创build此连接。 我可以在VBA中使用“Workbooks(”myWorkbook.xlsm“)创build相同的连接Connections.AddFromFile”data.csv“我可以在Data-> Connections-> Connections对话框中手动编辑这个连接,但是当我尝试使用WorkbookConnections.TextConnection属性在vba中设置此,vba说:“对象不支持此属性或方法”。 上面的链接侧重于数据库连接而不是csv文件连接。 但是,似乎可以使用Microsoft ACE OLEDB 12.0连接来设置csv文件,但是我不太明白。 在SO上也有类似的问题来解决vba修改数据源的问题(如下所示: 使用Excelmacros更改数据透视表外部数据源path )。 但是,我不想将数据带入Excel中的表格,我想连接到它,以便在Powerpivot中使用它。 我可以使用Power Query来做到这一点,但是因为我已经有了所需格式的csv,所以我不必介绍这个额外的步骤。 我在Windows 7上使用Excel 2013 64位。感谢您的帮助。
我想导出一个错误的内容types的CSV文件,所以它被打开在Excel中。 当对象的值为2.0时,在Excel工作表中它只显示2.它只是省略了十进制值。 当它的值是2.1,2.2等时它工作正常 问题出现在2.0,3.0时。 StringBuffer sb= new StringBuffer(); sb.append("2.0"); HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext() .getResponse(); response.setCharacterEncoding("UTF-8"); response.setContentType("application/ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=Test.csv"); response.getOutputStream().write(sb.toString().getBytes(Charset.forName("UTF-8"))); response.getOutputStream().flush(); response.getOutputStream().close(); FacesContext.getCurrentInstance().responseComplete(); 这是如何造成的,我该如何解决?
我必须插入什么字符或字符组合到我的CSV文件,所以如果我在Excel中启用换行符在这一点正确地打破文本? Private Sub removeHTMLTags(ByRef text As String) Dim htmlTagRegex As New Regex("<[^>]*>") Dim lineBreakHTMLTagRegex As New Regex("(<p>)|(<br>)|(</br>)|(</p>)") text = lineBreakHTMLTagRegex.Replace(text, Chr(10)) text = htmlTagRegex.Replace(text, " ") text = text.Trim End Sub 而不是Chr(10)我也尝试了vbNewLine,vbCrLf,vbCr,但每次都得到相同的结果:当文件被Excel打开时,这些符号被解释为正常的换行符,这导致excel中的行分割 这应该是这样的: 这看起来像: 如果我想通过双击它来简单地加载csv文件,而不是通过导入对话框,我如何才能在第二个屏幕截图中实现样式 备注:这不是VBA,我需要通过外部vb.net控制台应用程序来创buildcsv文件后打开Excel。
我今天遇到了一个新问题。 我发现了一些我正在使用的数据,看起来像这样(在csv文件中): Male,White,All Combined,1989,30-31,31,"59,546","18,141","328,235" Male,White,Felony – Drug,1989,30-31,31,"3,861","1,176","328,235" Male,White,Felony – Other,1989,30-31,31,"2,626",800,"328,235" Male,White,Felony – Property,1989,30-31,31,"3,468","1,057","328,235" Male,White,Felony – Violent/Sex,1989,30-31,31,"3,150",960,"328,235" Male,White,Misdemeanor,1989,30-31,31,"46,441","14,149","328,235" Male,White,Status,1989,30-31,31,0,0,"328,235" 很难看到问题,所以让我强调倒数第二列 : "18,141" "1,176" 800 "1,057" 960 "14,149" 0 问题是逗号被作为string导出的值,而没有逗号的值被导出为数字 。 要清楚的是,数据应该被解释为: 18141 1176 800 1057 960 14149 0 也就是说,它应该全部被解释为数字值。 但是,这让我觉得有些 “标准”应用程序正在导出这样的数据。 目前来说,这是Excel。 是否有任何有效的方法来尝试导入同一列中的这种不同的数据types的平面文件? readr库中的R( read_csv )和Python的Pandas( read_csv )都使用它们的标准标志,通过执行以下操作来解释这些数据: 假定它们都应该是数字(不pipe是否在所有“单元格”中都存在引号)。 因此,假设这些逗号必须是欧洲式的逗号(而不是美国时间)。 所以,这两个软件包都解释如下: 18.141 1.176 800 1.057 960 […]
当我尝试从CSV文件加载大型数组时,会发生意想不到的事情。 该文件有100000行和100列(80MB)。 我尝试了很多方法来快速加载CSV(因为速度是本质的)。 下面的代码第一次运行良好,但是当我第二次运行它时,variablestitle(String)或者redim arrRaw(Variant)给出了“内存不足”的错误。 重新启动Excel后,它再次正常工作。 它们都是本地声明的variables。 我试图使用公开声明,然后擦除arrays,但这个diddent工作。 我的系统显示RAM内存没有问题。 有没有解决这个问题的方法? Open filepath For Binary Access Read As #i Get #i, , res Close i title = Split(Right(Left(res, Len(res) – 1), Len(Left(res, Len(res) – 1)) – 1), vbLf) columnsArr = UBound(Split(title(1), ";")) rowsArr = UBound(title) ReDim arrRaw(1 To rowsArr, 1 To columnsArr) Call timerClock(True) For i […]
我试图从一个Excel工作簿导出15个工作表到CSV文件。 该工作手册总共包含18页。 前三张纸不需要导出,因为它们包含原始数据,说明和计算。 生成的CSV文件用于导入到Microsoft Dynamics AX中。 在保存为csv之前,我需要清除包含“〜”的任何cel。 但只能从15张出口。 我在这个论坛上发现了多个线程,可以让我成功创build一个csv。 我的VBA看起来像这样:(几个代码集合在一起) Sub SaveWorksheetsAsCsv() Dim WS As Excel.Worksheet Dim SaveToDirectory As String Dim CurrentWorkbook As String Dim CurrentFormat As Long CurrentWorkbook = ThisWorkbook.FullName CurrentFormat = ThisWorkbook.FileFormat ' Store current details for the workbook SaveToDirectory = "C:\Temp\Prices\CSV\" For Each WS In ThisWorkbook.Worksheets If WS.Name <> "Instructions" And WS.Name […]
必须生成包含双字节字符(中文,日文)的CSV文件,打开CSV文件并在使用文本编辑器时正确读取文本。 但生成的CSV文件将在Excel中打开时显示垃圾文本,我错过了什么?
我已编辑post以反映build议的更改。 def Excel2CSV(ExcelFile, Sheetname, CSVFile): import xlrd import csv workbook = xlrd.open_workbook('C:\Users\Programming\consolidateddataviewsyellowed.xlsx') worksheet = workbook.sheet_by_name (ARC) csvfile = open (ARC.csv,'wb') wr = csv.writer (csvfile, quoting = csv.QUOTE_ALL) for rownum in xrange (worksheet.nrows): wr.writerow( list(x.encode('utf-8') if type (x) == type (u'') else x for x in worksheet.row_values (rownum))) csvfile.close() Excel2CSV("C:\Users\username\Desktop\Programming\consolidateddataviewsyellowed.xlsx","ARC","output.csv") 它显示以下错误。 Traceback (most recent call last): […]