Записать файл в Excel с поддержкой кириллицы - C#
Формулировка задачи:
Подскажите как на С# записать файл в Excel с поддержкой кириллицы.
Решение задачи: «Записать файл в Excel с поддержкой кириллицы»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using ConsoleApplication2;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication2
{
class Price
{
public string Name { get; set; }
public string Cost { get; set; }
public string Site { get; set; }
}
class PrintExel
{
public static void ExportToExcel(List<Price> vPices)
{
// Загрузить Excel, затем создать новую пустую рабочую книгу
Excel.Application excelApp = new Excel.Application();
// Сделать приложение Excel видимым
excelApp.Visible = true;
excelApp.Workbooks.Add();
Excel._Worksheet workSheet = excelApp.ActiveSheet;
// Установить заголовки столбцов в ячейках
workSheet.Cells[1, "A"] = "NameCompany";
workSheet.Cells[1, "B"] = "Site";
workSheet.Cells[1, "C"] = "Cost";
int row = 1;
foreach (Price c in vPices)
{
row++;
workSheet.Cells[row, "A"] = c.Name;
workSheet.Cells[row, "B"] = c.Site;
workSheet.Cells[row, "C"] = c.Cost;
}
// Придать симпатичный вид табличным данным
workSheet.Range["A1"].AutoFormat(Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2);
// Сохранить файл, выйти из Excel
// убрать предупреждения!!! нужно для перезаписи
excelApp.DisplayAlerts = false;
workSheet.SaveAs(string.Format(@"{0}\Price.xlsx", Environment.CurrentDirectory));
excelApp.Quit();
}
public static List<Price> ImportToExcel()
{
// Загрузить Excel, затем создать новую пустую рабочую книгу
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = false;
excelApp.Workbooks.Open(string.Format(@"{0}\Price.xlsx", Environment.CurrentDirectory));
Excel._Worksheet workSheet = excelApp.ActiveSheet;
List<Price> tmPrices = new List<Price>();
for (int row = 1; row < 4; row++)
{
tmPrices.Add(new Price
{
Name = workSheet.get_Range(string.Format("A{0}", row + 1)).Value2.ToString(),
Site = workSheet.get_Range(string.Format("B{0}", row + 1)).Value2.ToString(),
Cost = workSheet.get_Range(string.Format("C{0}", row + 1)).Value2.ToString()
});
}
excelApp.Quit();
return tmPrices;
}
}
class Program
{
static void Main()
{
/// Тест записи в эксель
var ListPricee = new List<Price>();
ListPricee.Add(new Price { Name = "СУПЕР", Site = "ввв.точка.ру", Cost = "милион рублей" });
ListPricee.Add(new Price { Name = "сложно", Site = "ввв.точка.ком", Cost = "три" });
ListPricee.Add(new Price { Name = "очень", Site = "ввв.многоточек.ру", Cost = "два" });
// Записываем в эксель
PrintExel.ExportToExcel(ListPricee);
// Cчитываем из экселя
var MyListPrice = PrintExel.ImportToExcel();
Console.ReadKey();
}
}
}