我有这个代码复制其他封闭的工作簿在Excel中的数据。 Sub CopyData() Dim DTLBranchValue As Variant Application.ScreenUpdating = False Application.Calculation = xlCalculationManual DTLBranchValue = "D:\Adryan Work\Project Sales Progress\DTL_SI_BRANCH_VALUE_crosstab.xlsx" GetData DTLBranchValue, "DTL_SI_BRANCH_VALUE_crosstab", "C4:JO93", Sheets("Detail Value All Brand").Range("C19:JO108"), False, False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 我用技术来做到这一点如何使用VBA将closures的工作簿中的数据(保持closures)复制到主工作簿中 它只能从其他具有“.xlsx”格式的工作簿中复制。 如果我想从“.CSV文件”复制,我需要打开该工作簿,以便代码可以运行。 如何在不打开工作簿的情况下从“.CSV”文件复制?
早安,那是我的第一篇文章…所以请耐心等待:) 我有一个VBA代码的问题,我试图在Excel 2016上执行。我正在运行一台MacOSX Sierra机器。 每天我需要从3个.csv文件导入数据,并把它放在3个不同的Excel工作表,以特定的方式格式化数据,并添加一个networking链接,所以我logging了一个macros的Excel文件,这对我来说。 这里是导入一个.csv的代码(对于所有的都是一样的) Sub csvimport() ' ' csvimport Macro ' ' Keyboard Shortcut: Option+Cmd+Shift+I ' Sheets("displayAddedByCollaboration").Select Columns("A:A").Select With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;/Users/oem/Desktop/report/displayAddedByCollaborationReport.csv", _ Destination:=Range("A1")) .Name = "displayAddedByCollaborationReport" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = […]
我有一个包含date/时间字段的CSV报告,但是当我在Excel中打开它时,它似乎尝试自动格式化date和时间,但在某些date有一些问题。 如果我在记事本中打开CSV文件,所有date都遵循相同的格式,类似于2/1/17 12:00 AM (M / D / Y)。 但是,我得到2个不同的结果,取决于date。 如果一天less于12天,则会以yyyy-MM-dd(例如: 2002-01-17 12:00:00 AM )显示,这是我的系统date格式。 如果date> 12,它将显示为10/31/16 12:00 AM ,这正是它在CSV源中的格式。 所以,在这种情况下,它看起来像被视为文本。 如果我将短date格式更改为M / D / Y,那么一切正常,但是我相信我们已经对yyyy-MM-dd进行了标准化,这将需要多人使用,所以更改date格式需要使用此电子表格的用户不是一个好的select。 理想情况下,我想要做的就是防止这种情况发生,如果可能的话,打开文档时不会自动格式化date。 那可能吗?
大量的例子展示了如何使用OPENROWSET和OPENDATASOURCE打开对远程SQL服务器上的表的查询,并从其他服务器上的文件中获取数据。 不幸的是,他们没有一个告诉我如何做我需要做的具体的事情,这是使用这些命令之一来获得一个.csv或.xlsx Excel文件从远程服务器使用服务器的IP地址和Windowslogin的地方服务器没有安装SQL Server实例 – 只有IIS7或8。 如果微软文档没有忽略如何以最可能的方式使用他们的工具的基本例子,那将是非常好的。 尝试40多种不同的参数列表组合,并不需要真正的智能:这只是一种低效的浪费时间。 开发人员有更重要的事情要做,而不是浪费时间来发现一些“秘密知识”的秘诀,这个秘诀实际上只是一个没有正确logging的命令参数变体,并假装这是聪明的事情。 因此,为了减轻我的哲学焦虑,有人可以提供一个例子,说明如何使用OPENROWSET或OPENDATASOURCE从.csv文件或Excel电子表格中使用远程服务器IP地址XXX.XXX.XXX.XXX获取/select内容,一个端口号(如果应该包括的话),文件系统path正确地附加到命令或包含在命令中,以及正确安排用户名和密码参数。 远程服务器上没有SQL服务器实例 – 只有IIS和带有Windows身份validation的网站。 如果你有一个在远程服务器上与SQL服务器实例一起工作的例子,那么这样做(尽pipe我认为REMOTEDATASOURCE的一些例子已经包含了这个例子),但是我真的想要一个例子,我不必拥有一个SQL服务器实例在远程Web服务器上。 我知道你可以使用链接服务器,但有一些额外的行李放在远程服务器上,包含要访问的文件,在我的情况下,包含excel或.csv文本文件的服务器甚至没有SQL Server它的实例 – 只有IIS和一个网站。 (另外 – 有人可以确认您是否可以使用所需的文本数据文件在远程服务器上使用没有SQL Server或其他数据库服务器实例的链接服务器?是仅链接数据库服务器还是链接服务器,远程服务器可以只是一个窗口和Web服务器上没有安装SQL服务器?) 这个例子很方便,但是不告诉我SERVERPROPERTY('MachineName') AS nvarchar(128))可以包含一个没有SQL服务器实例的远程windows服务器的IP地址,而不是访问文本文件。 这个例子很接近,但在post里似乎没有一个积极的结果,也没有涉及到文本文件 – 只有一个数据库查询,所以远程系统安装了SQL服务器? SELECT * FROM OPENROWSET('PACISOleDb', '192.168.200.172';'admin';'admin', 'SELECT * FROM DB') 现有的例子是好的,但没有多大帮助: SELECT * FROM OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=YourServer;UID=UserID;PWD=Password', 'select * from sys.sysobjects') ( 来源 ) SELECT ContactName, CompanyName, ContactTitle […]
我想redirect我的xls文件输出到一个stream,但我面临错误。 以下是我正在使用的代码 #!/usr/bin/env python import codecs import datetime import decimal import csv import sys import xlrd def main(self): # We need to do this dance here, because we aren't writing through agate. if six.PY2: stream = codecs.getwriter('utf-8')(self.output_file) else: stream = self.output_file def dump_xls(data,active_worksheet): active_worksheet.append(data) file_name = "temp.xls" reader = csv.reader(self.input_file,delimiter=",") workbook = openpyxl.Workbook() worksheet = […]
我已经尝试了许多不同的方法来获得下面的结果在Excel中, Monday Tuesday Wednesday Thursday Friday Saturday Sunday Breakfast 0 0 289 0 265 0 0 Lunch 832 0 0 0 0 0 0 Dinner 201 0 0 0 0 0 620 从以下词典: my_dict = {"Monday":{"Breakfast": 0, "Lunch": 832, "Dinner": 201}, "Tuesday":{"Breakfast": 0, "Lunch": 0, "Dinner": 0}, "Wednesday":{"Breakfast": 289, "Lunch": 0, "Dinner": 0}, "Thursday":{"Breakfast": 0, […]
我希望你能帮上忙。 我有一个Excel VBAmacros来自动保存CSV作为XLSM文件。 但是,如果这样做,则会将CSV中的date格式更改为默认的本地英国设置。 我需要它不这样做,并保持原来的date格式。 原始date格式在CSV文件中是mm / dd / yyyy,我需要以XLSM格式保存这个格式。 目前macros允许Excel将格式更改为dd / mm / yyyy(本地英国设置)。 举例来说,在CSV中: 05/24/2017,2,3,email@email.com 在保存的XLSM文件中成为以下内容: 24/05/2017 2 3 email@email.com 这是我有的代码: Private Sub Workbook_Open() Dim wb As Workbook Dim strFile As String, strDir As String strDir = "C:\Processing\" strFile = Dir(strDir & "*.csv") Set wb = Workbooks.Open(strDir & strFile) With wb .SaveAs Replace(wb.FullName, […]
以下代码将XLS文件的每一页转换为CSV文件。 但是我找不到一种方法来阻止它将XLS中的空白行包含到CSV中。 请帮帮我。 function convertXLStoCSV($infile, $outfile) // the function that converts the file { $fileType = PHPExcel_IOFactory::identify($infile); $objReader = PHPExcel_IOFactory::createReader($fileType); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($infile); $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); $writer->setDelimiter(","); $writer->setEnclosure(""); foreach ($objPHPExcel->getWorksheetIterator() as $workSheetIndex => $worksheet) { $objPHPExcel->setActiveSheetIndex($workSheetIndex); $writer->setSheetIndex($workSheetIndex); $writer->save('converted/' . $outfile ."_" . $worksheet->getTitle() . ".csv"); echo $outfile; echo $infile; } }
我是MS-Access的新手。 标题是当我尝试将Excel工作表导入到Access 2016中的新表时得到的错误。请注意单个空引号是错误消息的一部分。 我已经尝试重新安装,玩弄导入选项,从CSV导入,具有不同编码的CSV,在Excel中检查表中的错误或不一致。 我search和search没有运气。 帮助将不胜感激。 附录:我尝试导入的CSV是: CashAccountID,AccountDescription,BankName,BankAccountNumber 301,Primary Checking Account,MegaBank,9017765453 302,Money Market Account,Wells Gargle,3831157490 303,Payroll Account,MegaBank,9835320050
我一直在网上寻找一个解决我的确切问题,但所有的答案都过时了。 我有一个文本文件包含这种forms的数据: 第一个名字:xxx 中间名:xxx 姓:xxx 生日:xxx 高度:xxx 重量:xxx 地址:xxx CITY,STATE ZIP:xxx 文件中有多个条目。 我需要从“xxx”中获取数据,基本上每个“:”后的所有数据都放在一行中,每个“xxx”用逗号隔开。 这是我可以使用它作为一个CSV文件。 我想把这个信息放入Excel工作表中。 所以我希望它看起来像这样: firstname,middlename,lastname,birthday,height,weight,address,citystatezip 这就是我所拥有的,我不知道从哪里走。 with open('info.txt') as file: for rec in file: print rec.split(':')[1] 这段代码只是假设在“:”后面打印每个东西。 我不能真正把它工作,也不知道我将如何把它放在我想要的格式。