23 #include <osl/thread.h>
30 aFieldSeps ( OUString(
';') ),
31 bMergeFieldSeps ( false ),
32 bRemoveSpace ( false ),
33 bQuotedFieldAsText(false),
34 bDetectSpecialNumber(false),
35 bSkipEmptyCells(false),
38 cTextSep ( cDefaultTextSep ),
39 eCharSet ( osl_getThreadTextEncoding() ),
41 bCharSetSystem ( false ),
48 sal_uInt16 nInfoCount =
static_cast< sal_uInt16
>( rDataVec.size() );
51 for( sal_uInt16 nIx = 0; nIx < nInfoCount; ++nIx )
60 if ( rSepNums.isEmpty() )
63 OUStringBuffer aFieldSeps;
67 const OUString aCode = rSepNums.getToken( 0,
'/', nPos );
69 o_bMergeFieldSeps =
true;
72 sal_Int32 nVal = aCode.toInt32();
79 return aFieldSeps.makeStringAndClear();
87 sal_Int32
nPos = rString.isEmpty() ? -1 : 0;
94 const OUString aToken = rString.getToken(0,
',', nPos);
103 const sal_Int32 nVal = rString.getToken(0,
',', nPos).toInt32();
116 nStartRow = rString.getToken(0,
',', nPos).toInt32();
122 const OUString aToken = rString.getToken(0,
',', nPos);
127 for (sal_Int32 nInfo=0; nInfo<nInfoCount; ++nInfo)
129 mvColStart[nInfo] = aToken.getToken(0,
'/', nP).toInt32();
157 bSaveAsShown = rString.getToken(0,
',', nPos) ==
"true";
173 bRemoveSpace = rString.getToken(0,
',', nPos) ==
"true";
181 OUStringBuffer aOutStr;
191 for (sal_Int32
i=0;
i<nLen;
i++)
205 aOutStr.append(
",").append(OUString::number(
cTextSep)).append(
",");
214 aOutStr.append(
",").append(OUString::number(
nStartRow)).append(
",");
217 for (
size_t nInfo=0; nInfo<
mvColStart.size(); nInfo++)
221 aOutStr.append(OUString::number(
mvColStart[nInfo]))
231 .append(OUString::number(static_cast<sal_uInt16>(
eLang))).append(
",")
242 return aOutStr.makeStringAndClear();
250 if (aFieldSeps.isEmpty())
254 else if (aFieldSeps.getLength() == 1)
255 return aFieldSeps[0];
259 if (aFieldSeps.indexOf(
',') != -1)
261 else if (aFieldSeps.indexOf(
'\t') != -1)
263 else if (aFieldSeps.indexOf(
';') != -1)
265 else if (aFieldSeps.indexOf(
' ') != -1)
268 return aFieldSeps[0];
rtl_TextEncoding eCharSet
void SetColumnInfo(const ScCsvExpDataVec &rDataVec)
static OUString GetCharsetString(rtl_TextEncoding eVal)
sal_Int32 getTokenCount(const OString &rIn, char cTok)
OUString WriteToString() const
static sal_Unicode GetWeightedFieldSep(const OUString &rFieldSeps, bool bDecodeNumbers)
From the import field separators obtain the one most likely to be used for export, if multiple separators weighted comma, tab, semicolon, space and other.
static OUString lcl_decodeSepString(const OUString &rSepNums, bool &o_bMergeFieldSeps)
std::vector< sal_Int32 > mvColStart
bool bDetectSpecialNumber
void ReadFromString(const OUString &rString)
static rtl_TextEncoding GetCharsetValue(const OUString &rCharSet)
std::vector< sal_uInt8 > mvColFormat
::std::vector< ScCsvExpData > ScCsvExpDataVec