Изначально моя программа принимала на вход CSV файл сохранённый в Unicode и нормально считывала с него данные, но пришлось перейти на Excel и вот тут я столкнулся с проблемой отображения содержимого файла .xlsx Что я делал:
Encoding win1251 = Encoding.GetEncoding("windows-1251");
string whole_file = File.ReadAllText(OpenCSVFile(), Encoding.GetEncoding(1251));
Encoding.Default()
, но это решение не помоглоДанные выглядят следующим образом:
Понимаю, что проблема в кодировке, но решить проблему не удалось. Буду рад услышать советы и рекомендации.
Программа отлично работала с CSV, но к сожалению часто CSV файлы "ломаются",съезжают строки
Сслылка на файл из примера https://wdho.ru/in0i/ex2007only_data&break.xlsx
Я использовал EPPlus 5. Ставим пакет
Код в форме такой
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
this._buttonOpen.Click += ButtonOpen_Click;
}
private void ButtonOpen_Click(object sender, EventArgs e)
{
if (_openFileDialog.ShowDialog() != DialogResult.OK)
return;
var stringBuilder = new StringBuilder();
ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;
using (var package = new ExcelPackage(new FileInfo(_openFileDialog.FileName)))
{
var page = package.Workbook.Worksheets["Page1"];
for (int row = 1; row <= page.Dimension.End.Row; row++)
{
for (int col = 1; col <= page.Dimension.End.Column; col++)
{
stringBuilder.AppendLine($"Строка: {row}, столбец: {col}," +
$" {page.Cells[row, col].Value?.ToString().Trim()}");
}
}
}
_textBoxOutput.Text = stringBuilder.ToString();
}
}
Работает это так
Есть метод для изменения размера картинкиКак сделать чтобы он перезаписывал файл
В общем, дело было так: Все прекрасно работало до тех пор, пока не обновил Visual Studio и не столкнулся с проблемами, когда Visual Studio не понимала синтаксис...
Собрал небольшое консольное приложениеПод Windows компилируется без проблем