将没有内容的彩色单元格从Excel导出到CSV

我有一个简单的Excel电子表格,头像和行像下面的例子。 列1,2和3下的所有单元格都具有单元格颜色, 没有任何单元格内容。

如果如下面的例子所示,Column3存在于Item2中,则Col3下的Item2的适当单元与其他单元不同。

 |  Col1 |  Col2 |  Col3 |
 ---------------------------
项目1 |  |  |  |
项目2 |  |  |  |

我的问题是:有没有办法将电子表格导出为CSV文件,以便CSV文件中保存与其他单元格颜色不同的任何单元格? 如果没有,是否有办法让Excel导出实际的单元格背景颜色到CSV?

我计划将CSV导入数据库。 我可以运行如果/然后案件的任何types的内容,我可以强制Excel导出为CSV,就像一个位(1)或varchar(FF0000)。

感谢您的帮助! 非常感谢!

CSV仅为文本,不包含任何颜色或任何其他格式。 但是,您可以将颜色值存储在项目旁边的string表示中。

我想你将不得不用一个macros来解决你提出的问题。

我通常处理这种types的问题的方式是使用单元格中的值的条件格式。 例如,如果我想让单元格变成黄色,我会写一条规则说明是否看到“Y”的值,然后填充单元格并将文本着色为黄色。 这样的方式看起来一样,但我可以导出/导入很好。

希望这可以帮助

多年来我一直使用Excel的csv文件很多次,通常发现Excel本地csv处理非常浮躁。 我倾向于写我自己的csv处理程序。

这是一个例子。 您将需要修改它以适应您的需求。

Sub SaveAsCsv(ws As Worksheet, Name As String) Dim fso As FileSystemObject Dim fl As TextStream Dim rw As Long Dim ln As String Dim Name as str On Error GoTo EH Name = "Your Path and File name" Set fso = New FileSystemObject Set fl = fso.CreateTextFile(Name, True) For each rw in ws.UsedRange.Rows ' Modify this to match your Items colunmn number If rw.Cells(1,ItemColumnNumber) <> "" then ln = "" ' Modify this to match your colunmn numbers For col = Col1 To LastCol ln = ln & rw.Cells(1,col).Interior.Color & "," ' or process the colour into whatever code you want Next fl.WriteLine Left(ln, Len(ln) - 1) End If Next rw EH: On Error Resume Next If Not fl Is Nothing Then fl.Close Set fl = Nothing Set fso = Nothing End Sub 

它包含对Microsoft脚本运行时的早期绑定引用,因此如果需要,请将引用或更改设置为延迟绑定。 添加任何您需要的error handling

注意:像这样迭代单元格范围可能会很慢,特别是对于大范围。 但鉴于您必须访问单元格格式,我没有看到任何其他select。