Валютный формат Excel Interop - PullRequest
3 голосов
/ 29 октября 2010

Я пытаюсь отформатировать ячейку в Excel в формате валюты. Поэтому я перехожу в Excel, записываю макрос, в котором я конвертирую обычную ячейку в формат валюты, смотрю на скрипт vb и вижу, что он выводит следующее:

NumberFormat = "$ #, ## 0,00"

Так что я беру этот формат и вставляю его в свой код, он работает до такой степени, что я получаю символ валюты перед значениями в моем листе Excel. Тем не менее, формат ячейки по-прежнему является числом, и Excel помещает маленький зеленый треугольник в левом нижнем углу ячейки, сообщая мне, что формат является неправильным (это так, потому что он должен быть валютой, но установлен в число) Есть ли способ в C # на самом деле установить ячейку в формате "Валюта"?

спасибо

Ответы [ 3 ]

7 голосов
/ 27 марта 2013

Объект диапазона имеет свойство «Стиль» ... метаданные intelisense говорят, что он «возвращает только тот объект, который вы можете использовать», но вы также можете просто установить Стиль с этим свойством. Чтобы получить встроенный стиль «Валюта», используйте свойство «Стили» (например) объекта Workbook.

Пример:

using Excel = Microsoft.Office.Interop.Excel;

...

var excel = new Excel.Application();
var wb = excel.Workbooks.Add();
var sheet = (Excel.Worksheet)wb.Sheets[1];
((Excel.Range)sheet.Cells[3, 4]).Style = wb.Styles["Currency"];

На самом деле вы можете просто установить его в строку "Валюта", которая может быть тем, что предлагал Чарльз.

((Excel.Range)sheet.Cells[3, 4]).Style = "Currency";
2 голосов
/ 07 октября 2011

Хорошо, я попробовал многие из этих кодов, и я нашел, что это работает лучше, чем другие на любых языковых / региональных настройках.

0 голосов
/ 29 октября 2010

Не уверен, что понимаю ваш вопрос:В Excel все числовые значения, включая валюту, целые числа и дату / время, хранятся как двойные числа с плавающей точкой.Формат значения контролирует только то, как оно представлено в рендеринге (видимом) слое.Тесты зеленого треугольника не включают тесты на форматирование.Проблема в том, что вы создаете текстовое значение, а не числовое значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...