Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Герои войны — это продуманное сочетание стратегии и RPG. Собери мощнейшую армию и одолей всех противников! В игре представлено 7  режимов — как для поклонников сражений с PvE, так и PvP.

Герои Войны

Стратегии, Мидкорные, Экшены

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
3
user11249120
user11249120
Лига программистов

Как лаконично проверить структуру массива или кортежа?⁠⁠

1 месяц назад
Как лаконично проверить структуру массива или кортежа?

С выходом C# 11 стали доступны списковые паттерны (list patterns), которые позволяют сопоставлять коллекции по элементам, как с начала, так и с конца — просто, читаемо и без лишних условий.

Первое условие проверяет, что массив начинается на 1, 2, заканчивается 10, и содержит что угодно посередине (..). Это особенно полезно при валидации данных, когда важна структура последовательности, но не все элементы. Списковые паттерны упрощают такие проверки, делая код более декларативным и понятным.

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

Списковые паттерны также поддерживают вложенные проверки, сопоставление с отбросом (_), и комбинацию с другими паттернами C#. Они интегрируются с switch-выражениями и pattern matching, предоставляя единообразный способ работы с различными структурами данных. Это существенно сокращает количество boilerplate-кода и улучшает читаемость при работе с массивами, списками, кортежами и другими индексируемыми коллекциями.

Ещё больше полезного контента в телеграмм канале EasyProger - https://t.me/easyprogers

Показать полностью
[моё] Тестирование Программа Python Программирование Искусственный интеллект Csharp Dotnet
3
2
verysimplenick

Inject dotnet runtime на C#⁠⁠

1 месяц назад

Записал видео, про встраивание dotnet runtime-а в чужое приложение с помощью C# file-based application без дополнительных unmanaged библиотек (т.е. без C++, на C# и assembler-е). Использую DLL Injection (через CreateRemoteThread), C# ассемблер (Iced), P/Invoke source generator для WinAPI (Microsoft.Windows.CsWin32) и Spectre.Console (CLI).

Ну и на всякий закину ссылки на ВКВидео\Рутуб у кого с ютубом плохо.

https://vk.ru/video-232844991_456239018

https://rutube.ru/video/3396bfcd484bb51405b84422cc8bd5f1/

[моё] Dotnet Программирование Видео YouTube
2
Jelizaveta

Как читать Excel в C#: Excel в DataTable и базу данных⁠⁠

5 месяцев назад
Как читать Excel в C#: Excel в DataTable и базу данных

Работа с файлами Excel является распространенной задачей во многих приложениях на C#, будь то для анализа данных, отчетности или интеграции с базами данных. В этом блоге мы рассмотрим, как читать файлы Excel в C# с использованием бесплатной библиотеки Excel для .NET. Мы охватим:

  1. Чтение рабочего листа Excel в C#

  2. Импорт данных в DataTable

  3. Сохранение данных Excel в базу данных (MySQL)

Библиотека C# для чтения Excel

Для работы с файлами Excel в C# мы будем использовать Free Spire.XLS для .NET — мощную библиотеку, которая позволяет разработчикам создавать, читать, редактировать и конвертировать файлы Excel без зависимости от Microsoft Office.

Установка

Установите библиотеку через диспетчер пакетов NuGet:

Install-Package FreeSpire.XLS

Чтение рабочего листа Excel в C#

Чтобы прочитать рабочий лист Excel, вы можете использовать следующий фрагмент кода на C#. Этот пример демонстрирует, как загрузить файл Excel и пройтись по его строкам и столбцам.

Основные шаги

  1. Создайте объект Workbook: Инициализируйте рабочую книгу для работы.

  2. Загрузите файл Excel: Укажите путь к вашему файлу Excel.

  3. Получите доступ к рабочему листу: Получите первый рабочий лист из книги.

  4. Получите диапазон данных: Извлеките диапазон ячеек, содержащих данные.

  5. Переберите строки и столбцы: Выведите значение каждой ячейки.

using Spire.Xls;

namespace ReadExcelData

{

class Program

{

static void Main(string[] args)

{

// Создайте объект Workbook

Workbook wb = new Workbook();

// Загрузите существующий файл Excel

wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

// Получите первый рабочий лист

Worksheet sheet = wb.Worksheets[0];

// Получите диапазон ячеек, содержащих данные

CellRange locatedRange = sheet.AllocatedRange;

// Переберите строки

for (int i = 0; i < locatedRange.Rows.Length; i++)

{

// Переберите столбцы

for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)

{

// Получите данные конкретной ячейки

string cellValue = locatedRange[i + 1, j + 1].Value?.ToString() ?? "N/A";

// Выравните вывод с шириной 22

Console.Write($"{cellValue,-22}");

}

Console.WriteLine();

}

}

}

}

Импорт данных из Excel в DataTable

Чтобы импортировать данные из файла Excel в DataTable, вы можете использовать следующий фрагмент кода. Этот пример связывает импортированные данные с DataGridView для удобного визуального отображения.

Основные шаги

  1. Создайте форму: Используйте приложение Windows Forms.

  2. Загрузите файл Excel: Как и в предыдущем разделе, загрузите ваш файл Excel.

  3. Экспортируйте данные в DataTable: Используйте метод ExportDataTable для конвертации данных.

  4. Свяжите DataTable с DataGridView: Отобразите данные в элементе управления DataGridView.

using Spire.Xls;

using System.Data;

namespace ReadExcelIntoDataTable

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

// Создайте объект Workbook

Workbook wb = new Workbook();

// Загрузите существующий файл Excel

wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

// Получите первый рабочий лист

Worksheet sheet = wb.Worksheets[0];

// Экспортируйте данные из рабочего листа в DataTable

DataTable dataTable = sheet.ExportDataTable();

// Свяжите DataTable с DataGridView

dataGridView1.DataSource = dataTable;

// Освободите ресурсы

wb.Dispose();

}

}

}

Сохранение данных Excel в базу данных (MySQL)

Наконец, для сохранения импортированных данных в базу данных MySQL вы можете использовать следующий фрагмент кода. Этот пример извлекает данные из листа Excel и вставляет их в таблицу MySQL.

Основные шаги

  1. Загрузите документ Excel: Как и в предыдущих шагах, загрузите ваш файл Excel.

  2. Извлеките заголовки: Получите строку заголовков для использования в качестве имен столбцов в вашей базе данных.

  3. Соберите данные: Извлеките каждую запись из строк данных.

  4. Подключитесь к MySQL: Установите соединение с базой данных MySQL.

  5. Создайте таблицу базы данных: Динамически создайте SQL для создания таблицы на основе заголовков.

  6. Вставьте данные: Используйте параметризованные запросы для вставки каждой записи в базу данных.

using Spire.Xls;

using MySql.Data.MySqlClient;

namespace ExcelToMySQL

{

class Program

{

static void Main(string[] args)

{

// Создайте объект Workbook

Workbook wb = new Workbook();

// Загрузите документ Excel

wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

// Получите конкретный лист

Worksheet sheet = wb.Worksheets[0];

// Извлеките заголовки

List<string> headers = new List<string>();

for (int col = 1; col <= sheet.LastColumn; col++)

{

string header = sheet.Range[1, col].Value?.ToString();

// Удалите пробелы, чтобы избежать конфликтов с именами столбцов MySQL

string cleanHeader = header?.Replace(" ", "");

headers.Add($"`{cleanHeader}`");

}

// Извлеките данные

List<List<string>> data = new List<List<string>>();

for (int row = 2; row <= sheet.LastRow; row++)

{

List<string> record = new List<string>();

for (int col = 1; col <= sheet.LastColumn; col++)

{

record.Add(sheet.Range[row, col].Value?.ToString() ?? string.Empty);

}

data.Add(record);

}

// Установите соединение с базой данных MySQL

string connectionString = "server=localhost;user=root;password=admin;database=excel_db;";

using (MySqlConnection connection = new MySqlConnection(connectionString))

{

connection.Open();

// Создайте таблицу с динамическими столбцами на основе заголовков

List<string> columns = new List<string>();

foreach (string header in headers)

{

// Предполагая, что все значения заголовков являются VARCHAR для простоты; настройте типы по мере необходимости

columns.Add($"{header} VARCHAR(255)");

}

// Создайте таблицу в базе данных

string columnsSql = string.Join(", ", columns);

string createTableQuery = $@"

CREATE TABLE IF NOT EXISTS my_table (

id INT AUTO_INCREMENT PRIMARY KEY,

{columnsSql}

)";

// Выполните запрос на создание таблицы

using (MySqlCommand createCommand = new MySqlCommand(createTableQuery, connection))

{

createCommand.ExecuteNonQuery();

}

// Подготовьте SQL-запрос INSERT

string placeholders = string.Join(", ", new string[headers.Count].Select(h => "?"));

string insertQuery = $"INSERT INTO my_table ({string.Join(", ", headers.Select(h => h.Trim('`')))}) VALUES ({placeholders})";

// Вставьте данные в таблицу

foreach (List<string> record in data)

{

using (MySqlCommand insertCommand = new MySqlCommand(insertQuery, connection))

{

for (int i = 0; i < record.Count; i++)

{

insertCommand.Parameters.AddWithValue($"@Param{i}", record[i]);

}

insertCommand.ExecuteNonQuery();

}

}

}

Console.WriteLine("Данные успешно экспортированы!");

}

}

}

Заключение

В этой статье мы рассмотрели, как читать данные из файлов Excel с помощью C#, импортировать эти данные в DataTable и сохранять их в базу данных MySQL. Используя библиотеку Free Spire.XLS, разработчики могут эффективно обрабатывать файлы Excel без необходимости в Microsoft Office. Этот подход может значительно улучшить рабочие процессы обработки данных в приложениях на C#.

Показать полностью
Csharp Dotnet Microsoft Excel Длиннопост
4
15
carbofoserman
carbofoserman

Нужен программист с опытом⁠⁠

5 месяцев назад
Нужен программист с опытом

Источник: https://habr.com/ru/articles/920084/#comment_28461946

Программист Работа Опыт работы Скриншот Habr Программирование Dotnet Московская биржа Найм
8
3
Jelizaveta

Как конвертировать Word в PNG и JPEG на C#⁠⁠

5 месяцев назад
Как конвертировать Word в PNG и JPEG на C#

Введение

Конвертация документов Word (DOC/DOCX) в изображения форматов PNG и JPEG полезна для обмена контентом без необходимости редактирования или для сохранения форматирования документа. В этой статье мы рассмотрим, как выполнить такую конвертацию в C# с использованием библиотеки для обработки документов Word в .NET.

C# библиотека для конвертации Word в изображения

Spire.Doc for .NET предоставляет эффективные методы для преобразования документов Word в изображения. Библиотека поддерживает конвертацию целых документов или отдельных страниц в высококачественные изображения форматов PNG, JPEG и BMP. Она проста в интеграции и предлагает гибкий контроль над разрешением для лучшего качества вывода.

Установка Spire.Doc через NuGet

Для использования Spire.Doc в вашем проекте необходимо установить его через NuGet Package Manager:

  1. Откройте Visual Studio и ваш проект

  2. Перейдите в Tools → NuGet Package Manager → Manage NuGet Packages for Solution

  3. Найдите "Spire.Doc" во вкладке Browse

  4. Выберите пакет и нажмите Install

Альтернативно, вы можете установить его через Package Manager Console, используя команду:

Install-Package Spire.Doc

Эта библиотека предоставляет бесплатную версию с ограниченным функционалом, которую также можно установить через NuGet:

Install-Package FreeSpire.Doc

После установки вы можете начать конвертировать документы Word в изображения, используя примеры кода ниже.

Конвертация DOC/DOCX в PNG

Следующий фрагмент кода демонстрирует, как преобразовать документ Word в изображения PNG:

using Spire.Doc;

using System;

using System.Drawing;

using System.Drawing.Imaging;

using Spire.Doc.Documents;

namespace ConvertWordToPng

{

class Program

{

static void Main(string[] args)

{

// Создаем объект Document

Document doc = new Document();

// Загружаем документ Word

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.docx");

// Конвертируем весь документ в отдельные изображения

Image[] images = doc.SaveToImages(ImageType.Metafile);

// Проходим по коллекции изображений

for (int i = 0; i < images.Length; i++)

{

// Устанавливаем разрешение для конкретного изображения

Image newimage = ResetResolution(images[i] as Metafile, 150);

// Сохраняем изображение в формате PNG

string outputfile = String.Format("Image-{0}.png", i);

newimage.Save("C:\\Users\\Administrator\\Desktop\\Images\\" + outputfile, ImageFormat.Png);

}

}

// Метод для установки разрешения изображения

public static Image ResetResolution(Metafile mf, float resolution)

{

int width = (int)(mf.Width * resolution / mf.HorizontalResolution);

int height = (int)(mf.Height * resolution / mf.VerticalResolution);

Bitmap bmp = new Bitmap(width, height);

bmp.SetResolution(resolution, resolution);

using (Graphics g = Graphics.FromImage(bmp))

{

g.DrawImage(mf, Point.Empty);

}

return bmp;

}

}

}

Пояснение:

  1. Загрузка документа: Класс Document загружает файл Word по указанному пути

  2. Конвертация в изображения: Метод SaveToImages() преобразует каждую страницу в изображение Metafile

  3. Настройка разрешения: Метод ResetResolution() обеспечивает высокое DPI (150 в данном случае)

  4. Сохранение в PNG: Каждое изображение сохраняется в формате PNG с последовательным именем файла

Конвертация DOC/DOCX в JPEG

Следующий фрагмент кода преобразует документ Word в изображения JPEG:

using Spire.Doc;

using Spire.Doc.Documents;

using System;

using System.Drawing;

using System.Drawing.Imaging;

namespace ConvertWordToJPG

{

class Program

{

static void Main(string[] args)

{

// Создаем объект Document

Document doc = new Document();

// Загружаем документ Word

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.docx");

// Конвертируем весь документ в отдельные изображения

Image[] images = doc.SaveToImages(ImageType.Bitmap);

// Проходим по коллекции изображений

for (int i = 0; i < images.Length; i++)

{

// Сохраняем изображение в формате JPEG

string outputfile = String.Format("Image-{0}.jpg", i);

images[i].Save("C:\\Users\\Administrator\\Desktop\\Images\\" + outputfile, ImageFormat.Jpeg);

}

}

}

}

Пояснение:

  1. Загрузка документа: Класс Document загружает файл Word аналогично конвертации в PNG

  2. Конвертация в Bitmap: Метод SaveToImages() преобразует страницы в изображения Bitmap

  3. Сохранение в JPEG: Каждое изображение сохраняется в формате JPEG с последовательным именем файла

Заключение

Используя Spire.Doc for .NET, конвертация документов Word в PNG или JPEG становится простой задачей. Библиотека эффективно обрабатывает рендеринг документов и предоставляет гибкость в настройке разрешения и формата изображений. Независимо от того, нужны ли вам высококачественные PNG или сжатые JPEG, Spire.Doc упрощает процесс конвертации на C#.

Показать полностью
Csharp Dotnet Png JPEG Длиннопост Microsoft Word
1
1
LionDan
LionDan
СМИ1.РФ
Серия Первая полоса

Полезное приложение от промпта до Github. Менее чем за час!⁠⁠

5 месяцев назад
GUI программы

GUI программы

Это произошло, когда в Windows очередной раз системная смотрелка не захотела показывать мне фото в папке, сославшись якобы на нехватку памяти (в свою очередь желание посмотреть фото было связано с чисткой смартфона для обновления приложений в нём, но это уже другая история).

Да, терпение лопнуло! То работает, то нет.
Искать альтернативную смотрелку я не захотел, решил создать быстро самостоятельно.

Захожу в DeepSeek и прошу:

>> Код на C# приложения WinForms, которое
>> 1. Позволяет просматривать файлы изображений webp, jpeg, png, Gif, animated Gif, apng, bmp.
>> 2. Имеет справа и слева от области просмотра кнопки для листания соседних по папке картинок
>> 3. Запоминает настройки в JSON-файле и загружает их оттуда при следующем старте
>> 4. Помнит список последних папок
>> 5. Принимает имя файла через первый аргумент (Open Verb)

Результат вы можете видеть в GitHub. Вместе с этим постом от идеи до реализации прошло около часа. Код от нейросети с самого начала оказался работоспособен.
Вручную:
- создание пустого проекта WinForms в VS2022 Community
- копирование кода в нужное место из ответа DeepSeek и установка nuget-пакетов
- добавление иконки :)
- сборка, тестирование, публикация в папку
- создание репо на GitHub и отправка туда исходников и собранного релиза.

Дольше всего: написание этого поста :)

Показать полностью 1
[моё] Нейронные сети Искусственный интеллект Программирование Программист Csharp Dotnet DeepSeek
2
5
Вопрос из ленты «Эксперты»
user10830363
Спроси Пикабу

Посоветуйте качественные курсы C# и .NET⁠⁠

6 месяцев назад

Я хотела бы начать двигаться в направлении C#-разработки. Но курсов очень много, отзывы не очень.

Пересмотрела кучу платформ, остановилась на: SkillFactory, OTUS, ITVDN, Специалист — рейтинг хороший, но отзывы вызывают сомнение. Кто сталкивался с ними? Поделитесь мнением о них.

Если знаете другие топовые курсы — пишите названия, буду благодарна!

Также вопрос к бывшим менеджерам по продажам курсов (или тем, кто в теме): Как можно выбить максимальную скидку? Слышала что нужно отказать в цене 2-3 раза, правда ли это? Может знаете реальные рабочие лайфхаки?

Буду рада помощи! Заранее спасибо за ответ.

Программирование Программист IT Онлайн-курсы Курсы программирования Курсы Менеджер по продажам Лайфхак Скидки Обучение Дистанционное обучение Учебные курсы Csharp Dotnet Вопрос Спроси Пикабу Текст
13
2
raynemar

Visual Studio Code Extensions⁠⁠

9 месяцев назад

Привет всем.
Есть ли среди вас те, кто пишут на VS Code .Net приложения?
Поделитесь, пожалуйста, какие расширения вы используете и какие считаете наиболее полезными.

[моё] IT Dotnet Visual studio Code Текст
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии