我正在使用这个csv阅读器来读取我所有的csv文件,然后结合到xls工作簿。 但是打开excel之后,所有来自csv的数字现在都被当作文本读取。 在每个csv中都有字母和数字。 有没有办法,我可以从csv压缩所有数值,让Excel知道它是数字而不是文本? import glob, csv, xlwt, os wb = xlwt.Workbook() for filename in glob.glob("d:/test/*.csv"): (f_path, f_name) = os.path.split(filename) (f_short_name, f_extension) = os.path.splitext(f_name) ws = wb.add_sheet(f_short_name) spamReader = csv.reader(open(filename, "rt")) for rowx, row in enumerate(spamReader): for colx, value in enumerate(row): ws.write(rowx, colx, value) wb.save("d:/test/compiled.xls")
目标:查找复摆的传感器数据的峰值(v,t)。 所使用的传感器每秒提供1024个脉冲数据。 testing需要从15秒到1分钟,所以很多行被写入到一个文件。 我有一个在Excel中打开的是48000行。 当绘制时,这会产生一个经过0的阻尼振荡图(有+ v和-v)。 我想自动find峰值(V,T),并把它们写在对方下面 所有的数据都在两列,时间在左边,速度在右边。 有时会出现长峰,最高速度在再次下降之前保持不变。 我想绝对的高峰,所以时间的意思。 从excel中捕获 我努力了: 在右边的单元格中 = IF(AA6 <= AA5; 1; 0) 并在右边的单元格 = IF((OR(AND(AB5 = 1; AB6 = 0);以及(AB5 = 0; AB6 = 1))); 1; 0) 这里的想法是,它产生一个0或1.当两个单元格都是1那么这应该是峰值,但这是行不通的,因为速度在峰值保持相同的一段时间。 有没有一种简单的方法来做到这一点在Excel中,或者应该考虑其他方法(VBA)? 先谢谢你!
我正在使用yii \ web \ UploadedFile上传excel和csv文件。 上传工作完全正常,但是,我遇到了一些奇怪的问题,我不知道如何解决。 我在我的规则上明确表示允许xls,xlsx和csv。 —> xls和xlsx上传没有任何问题,但csv文件抛出“只允许具有这些扩展名的文件:xlsx,xls和csv。 错误。 我100%确定我正在上传一个CSV文件。 这有什么特别的原因吗? 如何解决? 现在,我已经做了一个解决方法,通过删除我的规则扩展和显示错误消息时扩展不是xls,xlsx或csv,但我更喜欢它,如果我可以使用规则的默认值。 我主要使用日文文件名。 即:テスト0001.xlsx和テスト0001.csv。 当我尝试回显或转储在yii上生成的文件名时,我得到正确的文件名,但是当我检查上传文件夹时,文件名变成类似于:陬ス蜩√.xlsx。 到目前为止,我已经尝试使用iconv将字符集设置为UTF8,但没有运气。 我也尝试过对文件名进行硬编码,以检查它是否与实际文件有关,但仍然是相同的结果。 上传文件时如何保留原文件名?
我使用PHP中的fputcsv创build一个CSV文件。 文件创build成功,我可以在MacOS中打开文件没有问题。 (我在MacOS中使用Numbers)。 问题是在Microsoft Excel中,它将所有行显示为合并为单个列。 我将分隔符设置为“;” 在代码中。 当我检查Microsoft文档中所述的语言和区域设置时 ,分隔符也是“;”。 我还应该检查什么? 谢谢。
Excel的第一行包含每个单元格中带有\ n字符的单词。 例如: 月“东中北\\(NSA)”\\“东北中\南(南) 所以,当使用此代码转换为csv时: data_xls = pd.read_excel('/home/scripts/usless/HP_PO_hist.xls', 'sheet1', index_col=4,skiprows=3) data_xls.to_csv('HH_PO_output.csv', encoding='utf-8') 它将\ n之后的字符转换为新的行,如: ,月,“东北中环 (NSA)“,”东中北部“ (SA)“,”东南中环“ (NSA)“,”东南中环“ 但预期的产出是这样的: 月东中北部(NSA)东中北部(SA)东南中部(NSA)东南中部(SA) 如何删除这个\ n字符只能从这个索引行转换为Python df中的csv?
我试图将存储在一个文件夹中的所有CVS's合并到一个Excel工作表中。 合并之后,我将运行一个单独的macros来处理所有格式,而不是单独格式化每个单独的CSV文件。 下面的代码是我到目前为止: Sub MergeFiles_Click() Dim strSourcePath As String Dim strDestPath As String Dim strFile As String Dim strData As String Dim x As Variant Dim Cnt As Long Dim r As Long Dim c As Long Application.ScreenUpdating = False strSourcePath = Sheet1.Range("G2").Value If Right(strSourcePath, 1) <> "\" Then strSourcePath = strSourcePath & "\" strFile […]
我从foo.xlsm文件使用vba,打开bar.csv文件,然后将其复制到foo.xlsm文件。 然而,令人惊讶的是,事实certificate,它会弄乱date格式,有时会识别为mm/dd/yyyy , dd/mm/yyyy 。 csv文件有这样一行: "USD/MYR","TRF:1234","20/04/2017","01/06/2017","11/09/2017","01/06/2017" 所以所有的date都是dd/mm/yyyy格式。 如果我手动打开bar.csv文件,则4个date显示正确,如 20/4/2017 1/6/2017 11/9/2017 1/6/2017 但是,如果从foo.xlsm使用vba打开bar.csv文件,事实certificate是这样的 20/04/2017 6/1/2017 9/11/2017 6/1/2017 ,因此后来复制到foo.xlsm错误的date。 看起来好极了,首先将date解释为mm/dd/yyyy ,只有当这个不起作用时,它才会读取为dd/mm/yyyy 。 vba代码是这样的: Sub import_via_excel(source_file As String, source_sheet As String, target_sheet As String) On Error GoTo ErrHandler Application.ScreenUpdating = False Set wbThis = ActiveWorkbook Dim dest_sheet As Worksheet Set dest_sheet = wbThis.Sheets(target_sheet) Dim src_book As […]
在我的一个大pandasDataFrame中,有一列包含每一行中的字典或字典。 例如,其中一行将包含“{'a':1,'b':2}” 我需要使用'a'和'b'作为列的DataFrame,或者列中包含的所有字符都有很多唯一的键。 例如,如果一行包含“{'a':1,'b':2}”,而另一行包含“{'a':1,'c':2}”我需要使用'a' ,“b”和“c”作为列。 列名将是字典的关键字,行将包含字典的值。 DataFrame的索引将与原始的相同。 谢谢。
我有一个csv文件,它包含电话号码..样本号码是09131238732,我想保持0作为我的第一个号码,但现在我的问题是它被删除,当我重新打开CSV文件..就像当我把它保存0作为第一个数字,并将其格式化为文本,当我打开csv文件它返回到一般格式和0删除。 有没有办法解决这个问题?他们说我需要使用=文本(A1,“00000000000”),但我认为这将是一个麻烦,因为该文件包含100个数据与电话号码。我也创build一个自定义的格式单元格,但是当我保存并重新打开csv文件时,格式化的单元格会回到常规状态,并且我创build的自定义单元格被移除。 有谁知道如何正确地创build一个自定义的格式单元格,以便每当我closures并重新打开csv文件的自定义格式仍然是?
我尝试过“text / csv”,甚至是“application / vnd.ms-excel”,但Excel不会显示在选项列表中。 许多其他的应用程序。 void shareCsv(Uri uri, Context context) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("text/csv"); intent.putExtra(Intent.EXTRA_STREAM, uri); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); context.startActivity(intent); }