none
Программно сформировать текст на русском языке для Excel RRS feed

  • Вопрос

  • Всем привет!

    Программно формирую текстовый файл с таблицей для Excel-а.
    Для расчета суммы в столбце "A" нужно записать формулу "=сумм(A5:A100")
    Понятно, что нужно использовать CultureInfo,
    но не соображу как.
    19 февраля 2015 г. 16:53

Ответы

  • Привет.

    Насколько я понял, ты формируешь csv файл? Если да, то при создании StreamWriter или что там используешь, поменяй кодировку. В принципе все должно работать.

    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:21
    20 февраля 2015 г. 7:22
    Отвечающий
  • Это у меня текстовый файл,
    но с расширением "xls" для удобства.
    Чего-то в программе не хватает -
    записывает все правильно,
    и Excel читает 
    правильно,
    но почему-то 1 строку не понимает - #ИМЯ?

    using System;
    using System.IO;
    using System.Text;
    class Example 
    {	public static void Main() 
    	{	StreamWriter	w = new StreamWriter ( "ForExcel.csv", false,	Encoding.GetEncoding (1251) );
    		w.WriteLine	(	"=СУММ(a2:a10)"	);
    		w.WriteLine	(	1	);
    		w.WriteLine	(	2	);
    		w.Close();
    }	}





    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:21
    • Изменено QazRdx 20 февраля 2015 г. 11:53
    20 февраля 2015 г. 9:06
  • 1. Для таких файлов лучше использовать расширение CSV.

    2. Уберите пробелы. Вот так:

    w.WriteLine("=СУММ(a2:a10)");
    
    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:20
    20 февраля 2015 г. 9:13
    Отвечающий

Все ответы

  • Привет.

    Насколько я понял, ты формируешь csv файл? Если да, то при создании StreamWriter или что там используешь, поменяй кодировку. В принципе все должно работать.

    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:21
    20 февраля 2015 г. 7:22
    Отвечающий
  • Это у меня текстовый файл,
    но с расширением "xls" для удобства.
    Чего-то в программе не хватает -
    записывает все правильно,
    и Excel читает 
    правильно,
    но почему-то 1 строку не понимает - #ИМЯ?

    using System;
    using System.IO;
    using System.Text;
    class Example 
    {	public static void Main() 
    	{	StreamWriter	w = new StreamWriter ( "ForExcel.csv", false,	Encoding.GetEncoding (1251) );
    		w.WriteLine	(	"=СУММ(a2:a10)"	);
    		w.WriteLine	(	1	);
    		w.WriteLine	(	2	);
    		w.Close();
    }	}





    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:21
    • Изменено QazRdx 20 февраля 2015 г. 11:53
    20 февраля 2015 г. 9:06
  • 1. Для таких файлов лучше использовать расширение CSV.

    2. Уберите пробелы. Вот так:

    w.WriteLine("=СУММ(a2:a10)");
    
    • Помечено в качестве ответа QazRdx 20 февраля 2015 г. 9:20
    20 февраля 2015 г. 9:13
    Отвечающий
  • Без пробелов получилось.
    Большое спасибо!

    "..лучше использовать расширение CSV..."
    - это без разницы.
    Можно придумывать любые расширения,
    только надо указывать, чем их открывать.
    Ну а "xls" - это чтобы было возни меньше,
    чтобы не указывать, чем открывать.
    20 февраля 2015 г. 9:25
  • Пожалуйста.

    Когда я открываю файл с расширением xls, у меня Excel ругается на неправильную кодировку. Ну и других пользователей, чтобы в смущение не вводить, лучше CSV...

    20 февраля 2015 г. 9:44
    Отвечающий
  • Простой текстовый файл, 
    который без проблем открывается и набирается в блокноте,
    с табуляцией между числами в колонках.
    Работаю с этими файлами уже много лет,
    во всех версиях Excel - ов, какие были,
    а сейчас еще и на новом компе с 365.
    Правда, сейчас говорит, что файл небезопасен,
    но можно открыть, если уверен.
    Ну и ладно, у меня куча программ так работают,
    не буду переделывать, некогда.

    • Изменено QazRdx 20 февраля 2015 г. 10:52
    20 февраля 2015 г. 10:50