2013-05-16 3 views
3

Я использую OPENXML SDK 2.0 для потоковой передачи файла с расширенными таблицами. Исходные данные поступают из таблицы данных и записывают это в электронную таблицу с использованием openxml. Если есть один из данных столбца таблицы данных, то «Treshold%» (этот текст имеет вкладку на нем, предшествующий) и то же самое записывается как excel, но которое записывает его в «Treshold%» в excel ячейку и удаление пространства табуляции.OpenXML Spreadsheet - сохранить пространство до или после значения при записи значения ячейки

Я использую код, как показано ниже. Использование методов workSheetWriter.PasteText и .

WorksheetWriter workSheetWriter = new WorksheetWriter(spreadSheet, workSheet); 

int intValue = 0; 
if (strValue.Contains("$")) 
{ 
    strValue = strValue.Replace("$", ""); 
    strValue = strValue.Replace(",", ""); 

    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number); 
} 
else if (int.TryParse(strValue, out intValue)) 
{ 
    workSheetWriter.PasteValue(cellLocation, strValue, CellValues.Number); 
} 
else if (string.IsNullOrEmpty(strValue)) 
{ 
    workSheetWriter.PasteText(cellLocation, strValue); 
} 
else 
{ 
    workSheetWriter.PasteText(cellLocation, strValue); 
} 

Просьба помочь в этом. Как записать значение, которое занимает вкладка в начале (Treshold%) в ячейку excel в том же формате?

ответ

3

Я использую OPENXML SDK 2,0

Поскольку нет workSheetWriter класса в OpenXML SDK 2.0, я предполагаю, что вы используете эту библиотеку: Simple OOXML

Я не использую это библиотека, но

Я думаю вы не можете с помощью этих методов, так как .PastText и .PasteValue методов хранения текста с помощью CellValues.String и CellValue, и это вызывает, что пространство игнорируется:

{ 
    cell.CellValue = new CellValue(value); 
    cell.DataType = new EnumValue<CellValues>(type); 
} 

С помощью OPENXML SDK 2.0 только, я в состоянии сделать то, что вы хотите (сохранить пространство) с помощью CellValues.InlineString типа, InlineString и Text класса:

Text text1 = new Text() { space = SpaceProcessingModeValues.Preserve}; 
text1.Text = " Text with space at beginning"; 
cell.InlineString = new InlineString(text1); 
cell.DataType = new EnumValue<CellValues>(CellValues.InlineString); 

 Смежные вопросы

  • Нет связанных вопросов^_^