其中一种是两种编码风格的问题。 我有一个tab-dl'd文件,其中“对象”由空行分隔。 “对象”的第一行是ID。 直到空行的剩余行是属于该对象的东西。 我想parsing这个哈希如下: f = open(someFile, 'rb') c = csv.reader(f, delimiter = "\t", quoting = csv.QUOTE_NONE) thingstore = {} try: for row in c: title = row[0] thingstore[title] = set() item = map(fixStupidExcelCrap, c.next()) while ''.join(item).strip() != '': thingstore[title].add(tuple(item)) item = map(fixStupidExcelCrap, c.next()) except StopIteration: pass f.close() 对于这个解决scheme,我认为有几件事情是丑陋的。 首先,围绕整个函数的try块看起来像是在问问题,因为格式不正确的文件可能没有被检测到。 一种替代方法是将每个next()调用包装在一个try块中,并设置一个标志来退出外部循环,这看起来似乎很棘手。 其次, while ''.join(item).strip() […]
我试图从这个URL导入.csv: http://www.redfin.com/stingray/do/gis-search?market=socal®ion_id=11203®ion_type=6&excl_ss=true&hoa=&max_listing_approx_size=&max_num_beds=&max_parcel_size=&max_price=300000&max_year_built=&min_listing_approx_size=&min_parcel_size=&min_price=50000&min_year_built=&num_baths=1.0&num_beds = 1&open_house =&PKG = – &RD = SF = 1%2C2%2C3&sold_within_days =&状态= 1&time_on_market_range = 30-&uipt = 2&v = 8&num_homes = 500& SP = T&人= 3&渲染= CSV 以下代码适用于我使用不同的.csvurl,如下所示: http : //ichart.finance.yahoo.com/table.csv?s=AAPL&d=2&e=13&f=2013&g=d&a=8&b=7&c=1984&ignore =的.csv 但是,代码不适用于更长的URL。 该url是否过长? 如果是这样,是否有解决方法? 这是我现在的代码: Sub importCSV() Dim URL As String URL = "TEXT;http://www.redfin.com/stingray/do/gis-search?market=socal®ion_id=11203®ion_type=6&excl_ss=true&hoa=&max_listing_approx_size=&max_num_beds=&max_parcel_size=&max_price=300000&max_year_built=&min_listing_approx_size=&min_parcel_size=&min_price=50000&min_year_built=&num_baths=1.0&num_beds=1&open_house=&pkg=-&rd=&sf=1%2C2%2C3&sold_within_days=&status=1&time_on_market_range=30-&uipt=2&v=8&num_homes=500&sp=t&al=3&render=csv" Application.DisplayAlerts = False With ActiveSheet.QueryTables.Add(Connection:=URL, _ Destination:=Range("A1")) .Name = "test" […]
我有创buildCSV文件的ASP页面。 问题是,这个csv文件创build为UTF-8 WITHOUT BOM,当我打开它,一些迹象是不正确的。 我应该更改什么以将其保存为带有BOM的UTF-8? 如果我在记事本++中将其转换为UTF-8 WITh BOM,它就可以工作。 谢谢。 Response.Clear Response.ContentType = "application/vnd.ms-excel; charset=UTF-8;" Response.AddHeader "Content-Disposition", "attachment; filename=goodsTransfer.csv" Response.Charset = "UTF-8" Response.Write "all my data" Response.end
我有一个服务器自动生成报告。 报告采用CSV格式。 我需要能够直接encryption文件,没有第三方压缩(没有WinZIP或WinRAR)。 我认为最好的办法是将CSV转换为XLS,然后通过Powershell密码保护XLS文件。 不幸的是,我没有在服务器上安装Office,并且我已经发现用这种方式转换文件的所有示例都要求安装Excel。 有没有人知道一种方法来将CSV转换为PowerShell中的XLS而无需安装Excel? 或者,如果没有,你可以想一个更好的方式来密码保护CSV文件,而不压缩到ZIP或RAR?
我正在使用excel-vba访问由另一个程序创build的一个closures的.csv file 。 下面的代码只是通过每个单元格,并从打开的工作簿中将封闭的Excel文件中的值复制到同一单元格。 第一个.formula行与.xls文件一起使用,引用.csv文件的注释掉的.formula行不会 – 我得到"#REF!" 在每个细胞。 我认为我得到的错误是由于我没有说明它不是一个“标准” .xls文件的事实? 最终的代码将从一个经常被附加到的.csv文件读取,因此它必须保持closures状态 。 创build.csv文件的软件不能输出到.xls文件。 它将被编码,以便我的macros将从停止的位置恢复,而不是每次都执行整个工作表。 任何帮助将非常感激。 Sub GetData() Dim RowNumber As Integer Dim ColNumber As Integer For RowNumber = 1 To 100 For ColNumber = 1 To 104 With Cells(RowNumber, ColNumber) .Formula = "='C:\Documents and Settings\admin\Desktop\[data.xls]Sheet1'!" & Cells(RowNumber, ColNumber).Address '.Formula = "='C:\Documents and Settings\admin\Desktop\[data1.csv]Sheet1'!" & Cells(RowNumber, […]
我正在使用jQuery数据表插件来显示数据。 我已经添加了文件保存的选项,如excel,csv和pdf。 虽然它允许我将表格内容保存为文件。 但是它在excel和csv的情况下都将文件保存为.csv 。 我想要有excelbutton来允许我将文件保存为.xls格式 。 如何在这个插件中实现这一点。 以下是我正在使用的代码 。 $('#datatable_tabletools').dataTable({ "sDom" : "<'dt-top-row'Tlf>r<'dt-wrapper't><'dt-row dt-bottom-row'<'row'<'col-sm-6'i><'col-sm-6 text-right'p>>", "aaSorting": [], "oTableTools" : { "aButtons" : ["copy", "print", { "sExtends" : "collection", "sButtonText" : 'Save <span class="caret" />', "aButtons" : ["csv", "xls", "pdf"] }], "sSwfPath" : "<?=$baseUrl?>static/js/plugin/datatables/media/swf/copy_csv_xls_pdf.swf" }, "fnInitComplete" : function(oSettings, json) { $(this).closest('#dt_table_tools_wrapper').find('.DTTT.btn-group').addClass('table_tools_group').children('a.btn').each(function() { $(this).addClass('btn-sm btn-default'); }); […]
我试图将一个完整的XLSX文件目录转换为CSV。 除了遇到包含时间信息的列的问题,一切正常。 XLSX文件正在由另一个我无法修改的程序创build。 但是我希望保持与在Excel中查看XLSX文件时所显示的时间相同的时间,并将其转换为CSV并在任何文本编辑器中查看。 我的代码: import csv import xlrd import os import fnmatch import Tkinter, tkFileDialog, tkMessageBox def main(): root = Tkinter.Tk() root.withdraw() print 'Starting .xslx to .csv conversion' directory = tkFileDialog.askdirectory() for fileName in os.listdir(directory): if fnmatch.fnmatch(fileName, '*.xlsx'): filePath = os.path.join(directory, fileName) saveFile = os.path.splitext(filePath)[0]+".csv" savePath = os.path.join(directory, saveFile) workbook = xlrd.open_workbook(filePath) sheet = […]
我有一个文件,我目前保存到csv,但它最初是一个Excel文件(Excel 2010)。 其内容是这样的: Name;Category;Address McFood;Fast Food;Street 1 BurgerEmperor;Fast Food;Way 1 BlueFrenchHorn;French;Street 12 PetesPizza;Italian;whatever SubZero;Fast Food;Highway 6 我把它保存为csv来parsing它。 目前我使用DictReader( 这里是代码和相应的问题 ) 有没有像DictReader可用于像xlrd这样的Excel模块? 我将如何改变我的代码?
我有这个工作,除了我需要产生的文件,具体是一个“Windows逗号分隔的CSV”文件。 任何想法如何指定这个? Sub asdf() Dim ws As Worksheet, newWb As Workbook Application.ScreenUpdating = False For Each ws In Sheets(Array("sheet1", "sheet2")) ws.Copy Set newWb = ActiveWorkbook With newWb .SaveAs ws.Name & ".csv", xlCSV .Close (False) End With Next ws Application.ScreenUpdating = True End Sub
我创build了一个macros,它将.xlsx文件的值保存到某个目录中的csv,其中csv =的名称为写入的Excel文件的名称。 我希望这个macros可以在任何电子表格/工作簿中使用,所以我保存并添加了它。 我认为我与ActiveWorkbook vs ThisWorkbook有问题。 下面的代码是当不用作join项时按照预期工作的原始代码: Sub CSV() Dim WS As Excel.Worksheet Dim SaveToDirectory As String Dim CurrentWorkbook As String Dim CurrentFormat As Long CurrentWorkbook = ThisWorkbook.FullName CurrentFormat = ThisWorkbook.FileFormat SaveToDirectory = "C:\SomeDirectory\" For Each WS In ThisWorkbook.Worksheets Sheets(WS.Name).Copy ActiveWorkbook.SaveAs Filename:=SaveToDirectory & ThisWorkbook.Name & ".csv", FileFormat:=xlCSV ActiveWorkbook.Close savechanges:=False ThisWorkbook.Activate Next Application.DisplayAlerts = False ThisWorkbook.SaveAs […]