如何将Excel电子表格另存为以分号分隔的值文件?


31

我正在运行excel,并希望将文件导出为.scsv(用分号分隔的值)工作表而不是.csv。有什么办法吗?

ps。我无法执行.csv并用分号搜索和替换逗号,因为字段已包含逗号。


如果您愿意进行一些编程工作,则可以使用其内置csv模块以Python编程语言相当容易地编写一个转换器,这样可以轻松读取Excel .csv文件,然后编写刚刚包含该文件的新版本。关于您想要的任何定界符。
martineau 2012年

这取决于条目中是否包含逗号。
AER 2014年

Answers:


20

如何进行制表符分隔并用分号替换制表符?

在excel中:文件->另存为->在格式中选择“制表符分隔的文本(.txt)”,然后保存。

在记事本中打开文件,然后打开替换窗口。由于您无法直接在此窗口中选择标签,因此请从文档中复制一个标签,然后将其粘贴到“查找”框中,然后将;放入替换盒。然后全部替换。

我认为这是可行的,因为在Excel文档中很少有选项卡。


尽管对于大多数用户而言是基本的,但您是否还可以提供一组说明?
加拿大卢克REINSTATE MONICA 2012年

可以完全在Excel中完成吗?如果可以,怎么做?
martineau 2012年

我认为这不能完全在Excel中完成。Excel隐藏了格式(选项卡),因此您将无法替换它们。用分号替换它们后,您也将无法使用excel打开(这将是一个巨大的单元格)
罗伯特·

我认为使用正则表达式来替换和放置\t将起作用
Yassin Hajaj

当文件中有其他语言的特殊字符(如希腊语)时,这似乎不起作用,因为字符符号已替换为“?”
Joos

8

我认为您不能直接在Excel中设置输出分隔符,但是(假设使用Windows)您可以将OS列表分隔符更改为;-在中完成Regional Settings->Customize。Excel将使用该设置输出您的csv文件。


5
重要说明:如果执行此操作,则所有使用Internationalized Windows库的Windows程序都将假定; 是所有CSV文件的分隔符。如果这是一次性解决方案,则保存常规CSV文件并使用编辑器将逗号更改为分号可能更有意义
Isaac Rabinovitch 2012年

此更改还将影响在Excel中打开CSV文件。如上面评论中所述,可能还有更多程序。如果要制作更兼容的CSV文件,请放在CSV文件的sep=;顶部,然后保存文件后,可以将“列表分隔符”更改回原来的样子。
papo 2015年

7

使用LibreOffice Calc(可免费下载,并且可在所有主要操作系统上使用)。

要保存为分号分隔的值:

  1. 打开您的xlsx / csv文件
  2. 文件->另存为...
  3. 选择“过滤器CSV”作为过滤器(如果文件名以结尾,则应为默认值.csv
  4. 勾选“编辑过滤器设置”,然后按保存
  5. 当要求确认文件格式时,请按“使用文本CSV格式”
  6. 将“字段定界符”更改为分号(您可以在此处键入任何内容)。
  7. 按确定。

LO Calc将正确处理单元格值中的逗号和分号。


1
谢谢,工作顺利。这应该是公认的答案。
Ortomala Lokni

4

如果需要脚本,请将以下内容粘贴到模块中。

Option Explicit
Sub export2scsv()
    Dim lastColumn As Integer
    Dim lastRow As Integer
    Dim strString As String
    Dim i As Integer, j As Integer

    lastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

    Open "output.scsv" For Output As #1

    For i = 1 To lastRow
        Cells(i, 1).Select
        strString = ""
        For j = 1 To lastColumn
            If j <> lastColumn Then
                strString = strString & Cells(i, j).Value & ";" ' Use semicolon instead of pipe.
            Else
                strString = strString & Cells(i, j).Value
            End If
        Next j
        Print #1, strString
    Next i

    Close #1
End Sub

4

要将逗号更改为分号作为CSV的默认Excel分隔符-转到区域->其他设置->数字标签->列表分隔符,然后输入;而不是默认值


3

您可以通过“自定义格式”全局更改分隔符。

浏览到区域和语言,打开区域,在选项卡格式上单击按钮其他设置,然后在选项卡上数字更改列表分隔符的值:


不要只是发布答案的链接,而是在答案中包含重要的详细信息。如果目标页面消失了,那么答案就没用了。另外,尽管我不是Windows专家,但这看起来与三年前wmz的答案相同。
blm

0

1.>将文件格式更改为.CSV(以分号分隔)

为了获得所需的结果,我们需要临时更改Excel Options中的定界符设置。

移至文件->选项->高级->编辑部分

取消选中“使用系统分隔符”设置,并在“小数分隔符”字段中输入逗号。

现在将文件保存为.CSV格式,它将以分号分隔的格式保存!


5
摘自ashwaniashwin.wordpress.com/2013/04/19/…请注意,必须注明出处
2014年

0

如果您的值列表在A列中,请尝试以下操作-单元格B2 = A1&“;” && A2单元格B3 = B2&“;”&A3将单元格B3复制到列表的底部。如果将列表中的最后一个单元格复制并粘贴为值,则将使用分号分隔的列表。然后,您可以将其复制到记事本,Word或任何您想要的地方。


0

使用Excel的连接功能,您可以通过4个步骤轻松完成此操作。

  1. 在您的文件中,添加一列分号字符,您希望它们会出现在.csv导出中。

  2. 在数据的末尾开始新的一列,并在第一行中使用=concatenate()函数。确保选择要显示在最终文件中的所有单元格。您的公式看起来像=concatenate(A1,A2,A3...)

  3. 将结果公式复制并粘贴到所有数据行中。

  4. 选择整个公式列,然后将Special- > Values 粘贴到相邻列中。现在,您可以用分号分隔所有数据。

最后,导出为您选择的文件格式。如果在Windows中将其导出为.txt,则可以将文件扩展名更改为.csv,因为这两种格式均为纯文本格式。


-3

我以简单的方式使用:

  1. 使用记事本或记事本++打开csv(分号)文件。
  2. 查找并替换(Ctrl + H)从分号(;)到逗号(,)。
  3. 保存并关闭文件。
  4. 现在,使用Ms-Excel打开修改文件。

仅在没有字符串包含“;”的情况下才有效 或“,”,否则不会产生作者真正想要的东西。
Ramhound

1
这是错误的方向。该问题询问如何创建以分号分隔的值文件;该答案假定以分号分隔的值文件已存在,并描述了如何创建CSV文件-错误地,因为它没有考虑问题的关键约束:即,已知数据包含定界符。
G-Man说'Resstate Monica''Apr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.