Tag: csv

一次写多行,而不是使用WriteLine来提高性能?

我正在创build一个函数来创build带有自定义分隔符的CSV文件(例如:“;”或“ – ”而不是“,”)。 我有一个FOR循环,将我的范围的每一行写入CSV,但是在远程服务器中创buildCSV时,它一行一行的执行速度非常慢。 我的意图是创build一个string与我的循环中的所有文件,并打印到外面的CSV。 是否有可能做到这一点? 这就是我现在正在做的事情: Set fso = CreateObject("Scripting.FileSystemObject") Set oFile = fso.CreateTextFile(FilePath) ColsCount = wb.Sheets(1).UsedRange.Columns.Count RowsCount = wb.Sheets(1).UsedRange.Rows.Count With wb.Sheets(1) For r = 1 To RowsCount Line = Join(Application.Transpose(Application.Transpose(.range(.Cells(r, 1), .Cells(r, ColsCount)).Value)), ";") Call oFile.WriteLine(Line) ' Can I Remove this?… Next r End With ' …and do the writing to the file […]

将excel文件(xls或xlsx)转换为csv文件

我需要这个代码C#工作的文件Excel 2003和2007版本。 我不能得到这个C#代码工作转换Excel文件(xls)在CSV文件。 如果尝试使用excel文件扩展名xlsx这一切都可以,但如果尝试使用扩展名xls我在这一行中有错误: result.Tables[0].TableName.ToString(); 我的代码在下面,怎么了? 代码隐藏 FileUploadControl.SaveAs(Server.MapPath("/public/") + filename); System.IO.FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read); Excel.IExcelDataReader excelReader = Excel.ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); excelReader.Close(); result.Tables[0].TableName.ToString(); string csvData = ""; int row_no = 0; int ind = 0; while (row_no < result.Tables[ind].Rows.Count) { for (int i = 0; i < result.Tables[ind].Columns.Count; i++) { csvData += […]

Excel CSV文件分隔符更改

我在Excel中创build一个目录中的子文件夹,并保存Excel工作簿中的多个CSV文件 我的问题是,我需要在列表分隔符是“,”的系统上执行此操作。 CSV文件正从默认列表分隔符为“;”的系统读取。 我无法改变这一点 所以我需要将CSV文件中的','改成';'。 我的想法是使用PowerShell来实现这一点。 我的第一个尝试是通过传递给脚本的文件名在Excel中创build后立即更改CSV的分隔符。 我设法改变某个文件的分隔符,但我努力将path名传递给脚本(没有错误,但也没有改变文件): 脚本代码: param([string]$path) $content = [IO.File]::ReadAllText($path) #readParameter Import-CSV -Path $content -Delimiter ','|Export-CSV -Path C:\Users\Desktop\temp.csv -Delimiter ';' -NoTypeInformation #Export a CSV-File with ; (Get-Content C:\Users\Desktop\temp.csv) | % {$_ -replace '"', ""} | out-file -FilePath C:\Users\Desktop\temp.csv -Force -Encoding ascii #remove " from file Remove-Item -Path $content #remove old CSV-file Rename-Item […]

Vlookup CSV'd数组的总和

所以我一直试图在过去的一个小时左右来找出这一个,但我似乎无法得到正确的… 开始,这里是我正在使用的公式: =ArrayFormula(join(", ",vlookup(transpose(trim(split(V:V,","))),Costs!N:O,2,0))) 列V中的项目包含基于用户select的值,最多有10个选项,但是为了例子,它们可以看起来像这样: Apple, Banana, Carrot, Date, Elderberry Apple, Banana Apple, Date, Elderberry Carrot, Date 在列N到O的成本表中,我们有以下值: Apple 1 Banana 2 Carrot 3 Date 4 Elderberry 5 现在使用上面给出的公式,包含公式的单元格中的输出将根据列V中的初始值而变化,但是作为使用第一个单元格值的示例: 1, 2, 3, 4, 5 我遇到的问题是,我会反而将这些值作为N到O列中查找的SUM,而不仅仅是分割各个值。 所以我的理想输出是: 15 对此我有什么想法可以改变? 我尝试在公式中添加SUM,但是无法正确计算。 我显然需要这样做,以处理V列中任何特定顺序的值,因为它们不总是按顺序排列,尽pipeCosts!N:O中的值始终保持不变(因为它是查找列) 。 在此先感谢您的帮助! 我希望我已经清楚,如果不是,请随时编辑我的问题相应的。 回答: =IFERROR(ArrayFormula(SUM(vlookup(trim(split(V:V,",")),Costs!$N:$O,2,0))),"") 感谢Tom Sharpe为我的问题提出解决scheme! 我只是编辑他的解决scheme来处理空白值,所以单元格保持空,而不是抛出可怕的“#ERROR!” 信息。 所有的功劳都归功于他! 🙂

csv文件打印大于0.5的列的原始值

我有一个csv文件包含follwingmatrix A1 A2 A3 A4 B1 0.2 0.3 0.7 .5 B2 0.5 0.55 0.4 0.6 B3 0.9 0.13 0.5 0.16 B4 0.2 0.4 0.6 0.8 我想我的输出值大于0.5以下格式 A1 B2 B3 A2 B2 A3 B1 B3 B4 如下,请帮助我一样。 这是我所尝试过的 import csv ifile = open('gene.matrix.csv', "rb") reader = csv.reader(ifile) rownum = 0 for row in reader: # Save […]

使用多于一列对excel数据进行sorting

我想sorting使用2或3列的Excel数据(所以如果你愿意嵌套sorting)。 目前发生的是我得到一个文本文件(有时超过1)与日志条目,然后我必须将条目转换成一个pipe理的Excel电子表格。 我设法做到这一点,但现在我的经理要我也分别按“date”和“时间”列sorting。 所以要打破它,我只是想弄清楚如何做到这一点。 要求: 通过多列对csv或excel电子表格进行sorting,并将其写入文档(最好是相同types的文档)。 码: 目前我的代码是: import csv, os import operator testcsv= open('test.csv', 'r') csvSort = csv.reader(testcsv, delimiter=",") sort = sorted(csvSort,key=operator.itemgetter(0,1)) for eachline in sort: print eachline 这适用于“打印”和检查。 但是我不能把这个数据写回Excel电子表格。 如果我这样做,它全部进入1行而不是多行。 当我写文件时,这是我使用的代码: dest = "C:/Test2.csv" for eachline in sort: if not os.path.exists(dest): fileToCreate = open(dest, 'w') fileToCreate.writelines(eachline) else: fileToCreate = open(dest, 'a+') fileToCreate.writelines(eachline) fileToCreate.close() […]

在多行中展开逗号分隔的表格

我有一个关键和多个值以逗号分隔的方式关联的表。 想要将其更改为每个值一行,重复按键多次如下。 你会知道如何做到这一点没有任何Excelmacros ?

外部字符在Excel中损坏,有没有办法从记事本+ +导入文件与工作字符?

我不知道如何以最好的方式来标题我的问题,但我有一个文件(从一个WordPress插件),我可以下载一个CSV或XML。 它包含在Excel 2010(CSV)中显示为无效字符的外来字符( Latin Extended-A显然 )。 在Excel中打开XML文件不起作用,因为指定的XML源不会引用模式 。 但是,CSV将在Notepad ++中以正确的字符打开。 数据混乱,因为它不像Excel一样整齐地显示。 我find了一个插件(TextFX),将我的所有列整齐排列显示。 有没有办法可以将文件保存在Notepad ++中,并将其导出到Excel中,并保存并运行特殊字符? 还是有另一种解决方法,让CSV或XML文件在Excel中正常工作?

Powershell从excel列删除数字,留下文本

我想从第1列和第2列中的csv文件中删除一些数字,但不是3。 基本上我需要删除六个数字和 – 即删除“000001 – ”,并离开“OfficeFramework”从第1和第2列,但离开所有其他文本。 我在excel csv文件中的数据是: Column1 | Column2 | Column3 000001 – OfficeFramework | 002924 – Edition | Standard 000001 – OfficeFramework | 002925 – Install Type | Server 000001 – OfficeFramework | 002926 – Version | v4.3.00 000001 – OfficeFramework | 002927 – Audit Trail Enabled | FALSE 我需要它看起来像: Column1 | […]

通过Excel工作簿parsing并将特定的标签保存为.csv文件

我需要帮助将excel工作簿中的特定选项卡保存为1)csv文件,以及2)以源文件命名的文件。 到目前为止,我有这样的工作,从一个工作簿中取出正确的选项卡,并将其保存为.csv文件。 Sub Sheet_SaveAs() Dim wb As Workbook Sheets("SheetName").Copy Set wb = ActiveWorkbook With wb .SaveAs ThisWorkbook.Path & "\SheetName.csv" '.Close False End With End Sub 如何重命名“SheetName”,以便将文件保存为例如Workbook1SheetName,Workbook2SheetName等? 我想循环这个函数通过许多很多excel文件的文件夹,所以新的.csv文件需要唯一的名称。 我在网上find了这个网站,展示了如何使用VBA循环http://www.ozgrid.com/VBA/loop-through.htm 。 从理论上讲,只要每个.csv文件都可以有一个唯一的名字,就应该使用上面的代码。 纠正我,如果我错了。 谢谢您的帮助。