2012-06-12 33 views
0

我最近在工作中繼承了一個項目,該項目由我們的一個不太熟練的實習生編寫。理論上相當簡單;它只需要將一些數據從服務器導出到供應商的CSV文件。導出時禁用自動封裝

問題是,我們的供應商需要將所有字段,而不僅僅是帶有逗號的字段封裝在引號中。 Aspose Cells似乎在使用逗號的字段上有某種形式的自動封裝,但不是所有的字段。

原始程序員在導出之前將引號應用於所有字段,但文件最後以三個引號圍繞所有字段。爲了解決這個問題,他們編寫了另一個函數來重新打開文件,並用一個單引號替換所有的三引號。

我知道文本文件有分隔符選項,但我找不到有關在Aspose中更改封裝的任何信息。

所以我的問題是,他們是否有其他的方式來處理這比現在做兩個通行證更好?

更新:Aspose已在他們的論壇上回復了我的帖子,他們表示他們將爲TxtSaveOptions類添加屬性以支持此功能。如果/發生特定情況,我會再次更新。

+0

在序列中的哪個點添加了引號?如果您可以看到Apose添加引號的位置,只需將這些字段標記爲不應該包裹的字段,然後封裝其餘字段...... – Chris

+0

Aspose在實際保存過程中添加引號。根據我在論壇上看到的內容,它會自動封裝任何字符串字段,因此,我添加的任何引號都會導致三重引號情況。 – Logarr

回答

1

在Aspose.Cells for .NET v7.2.2中,他們添加了一個新屬性,名爲AlwaysQuoted

下面是如何在使用該物業的樣本保存:

var options = new TxtSaveOptions(SaveFormat.CSV) {AlwaysQuoted = true}; 
workBook.Save(@"C:\Export Location\"), options); 

的屬性設置爲true,將封裝所有領域,無論內容。默認設置是按照Excel的模式來模擬CSV標準。