суббота, 28 февраля 2015 г.

Битрикс чистка сайта (удаление ненужных файлов)

Ситуация

Сайт на Битриксе разросся до 17 ГБ и перестал "влазить" в параметры хостинга. Соответственно возникла необходимость Почистить сайт (удалить ненужные файлы).


Внимание! Рекомендации в этом посте применяйте на свой страх и риск. Даю без гарантий.

Что сделал

1. Чистка резервных копий

Удалил старые резервные копии через

Настройки\Инструменты\Резервное копирование\Список резервных копий

Это действие в моем случае помогло больше всего.

2. Чистка кеша

Почистил папки 
/bitrix/managed_cache/ 
/bitrix/cache/


Ссылки по теме

Проблема : Увеличивается объём занимаемого места в папке /bitrix/cache/
http://www.hcube.ru/support/faq/index2.php?ELEMENT_ID=3098

Если на хостинге закончилось место
http://dev.1c-bitrix.ru/community/blogs/howto/no-disk-space.php

Как уменьшить размер сайта на сервере? (битрикс 8.0.4)
http://dev.1c-bitrix.ru/community/forums/forum23/topic33413/

Мастер очистки сайта
http://marketplace.1c-bitrix.ua/solutions/acrit.cleanmaster/

Мастер очистки данных
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=48&LESSON_ID=2354

Чистка сайта от мусора и кеша
http://dev.1c-bitrix.ru/community/forums/forum6/topic39645/

Оптимизация размера сайта на платформе 1С-Битрикс
http://habrahabr.ru/sandbox/85103/

пятница, 6 февраля 2015 г.

C# разбор(чтение) Excel-файла без установленного Excel

Задача:
Разобрать(прочитать) Excel-файл на C#.

Решение должно использоваться в веб-приложении на сервере, соответственно, должно работать без установленного Excel.

Что помогло

Помогла библиотека Excel Data Reader

Суть: с помощью библиотеки можно сделать импорт экселя в дотнетовский датасет (DataSet),
а дальше уже работать в терминах .NET со строками/столбцами датасета.

Код получается примерно такой

FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);

//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//...
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//...
//3. DataSet - The result of each spreadsheet will be created in the result.Tables
DataSet result = excelReader.AsDataSet();


Где взять

https://exceldatareader.codeplex.com/

Материалы по теме


ExcelDataReader
http://exceldatareader.codeplex.com/


Работа с Excel в C# без установленного Microsoft Office
http://it-student.com.ua/c/tips/rabota-s-excel-v-c-bez-ustanovlennogo-microsoft-office.html

NPOI Lib
http://www.leniel.net/2014/01/npoi-2.0-major-features-enhancements-series-of-posts-scheduled.html#sthash.mzVboJsi.dpbs

NPOI - ссылка для скачивания и примеры
http://npoi.codeplex.com/releases

NPOI Примеры
http://stackoverflow.com/questions/5855813/npoi-how-to-read-file-using-npoi



​Работа с COM сервером Excel
http://wladm.narod.ru/C_Sharp/comexcel.html#7

Объектная модель Excel с точки зрения разработчика под .NET
http://www.ishodniki.ru/art/art_progr/net/474.html


Excel средствами C#
http://petrachuk.ru/excel-by-csharp/

C# How To Read .xlsx Excel File With 3 Lines of Code
http://www.codeproject.com/Tips/801032/Csharp-How-To-Read-xlsx-Excel-File-With-Lines-of

Excel загрузка и выгрузка данных, используя OpenXML
http://habrahabr.ru/post/203522/

Koogra Excel BIFF/XLSX Reader Library
http://sourceforge.net/projects/koogra/

C# ExcelDataReader IndexOutOfRangeException error (trying to import Excel File)

Environment

VS 2013
Excel Data Reader library

Problem

I try to import excel file.

With code like this
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);

//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//...
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//...
//3. DataSet - The result of each spreadsheet will be created in the result.Tables
DataSet result = excelReader.AsDataSet();

I've got an exception
IndexOutOfRangeException
on some files.

Solution

What've I found out by experimental way: problem files was in old Excel 5-7 format.

"save as" problem files in "excel 97-2003" format and reimport them.