Сохраните протокол, вы можете обратиться к «www.example.com» как имя хоста или, более конкретно, «полное доменное имя».
Бросьте в «9090», и лично мне будет удобно называть его хозяином, так как обычно это то, что вы получите в качестве заголовка «хоста» в HTTP-запросе; что-то вроде «host: www.example.com:9090». В PHP он будет храниться в переменной $_SERVER
в разделе «HTTP_HOST» или «SERVER_NAME». В JavaScript он будет доступен как document.location.host
.
Я не знаю, как вы могли бы его называть, как только вы подбрасываете «http: //»: (
Вы можете использовать библиотеку под названием ExcelLibrary. Это бесплатная библиотека с открытым исходным кодом, размещенная на Google Code:
Похоже, это порт PHP ExcelWriter, о котором вы упомянули выше. Он пока не будет записывать в новый формат .xlsx, но они работают над добавлением этой функциональности в.
Он очень простой, маленький и легкий в использовании. Кроме того, у него есть DataSetHelper, который позволяет использовать DataSets и DataTables для простой работы с данными Excel.
Кажется, что ExcelLibrary работает только со старым форматом Excel (.xls), но, возможно, в будущем будет добавлена поддержка новых форматов 2007/2010.
Вы также можете использовать EPPlus , который работает только с файлами формата Excel 2007/2010 (файлы .xlsx). Также существует NPOI , которое работает с обоими.
В каждой библиотеке есть несколько известных ошибок, как указано в комментариях. В целом, EPPlus кажется лучшим выбором с течением времени. Похоже, он более активно обновляется и документируется.
Кроме того, как отмечает @ АртёмЦарионов ниже, EPPlus поддерживает сводные таблицы, а ExcelLibrary может иметь некоторую поддержку ( Проблема сводной таблицы в ExcelLibrary )
Вот пара ссылок для быстрого ознакомления:
ExcelLibrary - GNU Lesser GPL
EPPlus - Малая стандартная общественная лицензия GNU (LGPL)
NPOI - Лицензия Apache
Вот некоторые пример кода для ExcelLibrary:
Вот пример получения данных из базы данных и создания из нее книги. Обратите внимание, что код ExcelLibrary - это единственная строка внизу:
//Create the data set and table
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");
//Set the locale for each
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
//Open a DB connection (in this example with OleDB)
OleDbConnection con = new OleDbConnection(dbConnectionString);
con.Open();
//Create a query and fill the data table with the data from the DB
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataAdapter adptr = new OleDbDataAdapter();
adptr.SelectCommand = cmd;
adptr.Fill(dt);
con.Close();
//Add the table to the data set
ds.Tables.Add(dt);
//Here's the easy part. Create the Excel worksheet from the data set
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);
Создать файл Excel так просто. Вы также можете вручную создавать файлы Excel, но меня действительно впечатлила вышеуказанная функциональность.
Решение с открытым исходным кодом Java ПОИ Apache . Возможно, существует способ установить interop здесь, но я не знаю достаточно о Java для ответа на это.
, Когда я исследовал эту проблему, я закончил тем, что использовал блоки Interop.
Вот способ сделать это с LINQ к XML, вместе с примером кода:
Quickly Import и Export Данные Excel с LINQ к XML
Это - немного комплекса, так как необходимо импортировать пространства имен и т.д, но это действительно позволяет Вам избежать любых внешних зависимостей.
(Кроме того, конечно, это-.NET VB, не C#, но можно всегда изолировать материал.NET VB в его собственном проекте использовать литералы XML и сделать все остальное в C#.)
Можно использовать OLEDB, чтобы создать и управлять файлами Excel. Проверьте это: Reading и Writing Excel с помощью OLEDB.
Типичный пример:
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand("CREATE TABLE [Sheet1] ([Column1] string, [Column2] string)", conn);
cmd.ExecuteNonQuery();
}
РЕДАКТИРОВАНИЕ - еще Некоторые ссылки:
Вы на самом деле могли бы хотеть проверить interop классы . Вы не говорите OLE (который это не), но interop классы очень просты в использовании.
Вы могли бы быть впечатлены, если Вы не судили их.
быть предупрежденным относительно Microsoft позиция на этом:
Microsoft в настоящее время не рекомендует и не поддерживает, Автоматизация приложений Microsoft Office ни от какого необслуживаемого, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), потому что Office может показать нестабильное поведение и/или зайти в тупик, когда Office выполняется в этой среде.
Я соглашаюсь о генерации электронных таблиц XML, вот пример о том, как сделать это для C# 3 (все просто ведут блог об этом в VB 9: P) http://www.aaron-powell.com/linq-to-xml-to-excel
Чрезвычайно легкая опция может состоять в том, чтобы использовать HTML-таблицы. Просто создайте голову, тело и теги таблицы в файле, и сохраните его как файл с .xls расширением. Существует Microsoft определенные атрибуты, которые можно использовать для моделирования вывода, включая формулы.
я понимаю, что Вы не можете кодировать это в веб-приложении, но здесь пример из состава файла Excel с помощью HTML-таблицы. Эта техника могла использоваться при кодировании консольного приложения, настольного приложения или сервиса.
Вы могли рассмотреть создание Ваших файлов с помощью электронная таблица XML 2003 формат. Это - простой формат XML с помощью хорошо зарегистрированная схема .
Можно хотеть смотреть на GemBox. Электронная таблица .
у Них есть бесплатная версия со всеми функциями, но ограниченный 150 строками на лист и 5 листов на рабочую книгу, если это находится в пределах Ваших потребностей.
у меня не было потребности использовать его самого все же, но действительно выглядит интересным.
Различные библиотеки Office 2003 XML доступная работа вполне прилично для меньших файлов Excel. Однако я нахожу чистый размер большой рабочей книги сохраненным в формате XML, чтобы быть проблемой. Например, рабочая книга, я работаю с этим, составила бы 40 МБ в новом (и по общему признанию более плотно упакованный), формат XLSX становится XML-файлом 360 МБ.
, Насколько мое исследование взяло меня, существует два коммерческих пакета, которые позволяют вывод более старым форматам двоичного файла. Они:
Gembox ComponentOne Ни один не является дешевым (500 долларов США и 800 долларов США соответственно, я думаю). но оба работают независимые от самого Excel.
то, На предмет чего мне было бы любопытно, является выходным модулем Excel для подобных OpenOffice.org. Интересно, могут ли они быть портированы от Java до.Net.
Вы когда-либо пробовали sylk?
Мы раньше генерировали excelsheets у классического asp как sylk, и прямо сейчас мы ищем excelgenerater также.
преимущества для sylk, можно отформатировать ячейки.
Коммерческое решение, SpreadsheetGear для.NET сделает это.
Вы видите живой ASP.NET (C# и VB) образцы здесь и загружаете пробную версию здесь .
Правовая оговорка: Я владею SpreadsheetGear LLC
Можно использовать ExcelXmlWriter.
Это хорошо работает.
Я только что недавно использовал FlexCel.NET и нашел, что это превосходная библиотека! Я не говорю это о слишком многих программных продуктах. Никакой смысл в предоставлении целой коммерческой цели здесь, можно считать все функции на их веб-сайте.
Это - коммерческий продукт, но Вы получаете полный источник при покупке его. Таким образом, я предполагаю, что Вы могли скомпилировать его в свой блок, если бы Вы действительно хотели. Иначе это - всего один дополнительный блок для копирования с помощью xcopy - никакая конфигурация или установка или что-либо как этот.
я не думаю, что Вы найдете любой способ сделать это без сторонних библиотек, поскольку платформа.NET, очевидно, не имеет созданным в поддержке его, и Автоматизация OLE является просто целым миром боли.
Несколько вариантов, которые я использовал:
Если XLSX необходим: ExcelPackage - хорошее начало, но оно исчезло, когда разработчик прекратил работу над ним. ExML взял оттуда и добавил несколько функций. ExML неплохой вариант, я все еще использую его на нескольких производственных веб-сайтах.
Однако для всех моих новых проектов я использую NPOI , порт .NET для Apache POI . NPOI 2.0 (Alpha) также поддерживает XLSX.
Я успешно использовал следующие проекты с открытым исходным кодом:
ExcelPackage для форматов OOXML (Office 2007)
NPOI для формата .XLS (Office 2003). NPOI 2.0 (Beta) также поддерживает XLSX.
Взгляните на мои сообщения в блоге:
Некоторые полезные средства автоматизации Excel на C # можно найти по следующей ссылке.
http://csharp.net-informations.com/excel/csharp-excel-tutorial.htm
Болтон.
Что ж,
вы также можете использовать стороннюю библиотеку, например Aspose .
Эта библиотека имеет то преимущество, что не требует установки Excel на ваша машина, которая будет идеальной в вашем случае.
Если вам нравится формат xlsx, попробуйте мой проект GitHub, EPPlus . Он начался с исходного кода из ExcelPackage, но сегодня он полностью переработан. Он поддерживает диапазоны, стили ячеек, диаграммы, фигуры, изображения, именованные диапазоны, автофильтр и многое другое.
Я также голосую за GemBox.Spreadsheet .
Очень быстрый и простой в использовании, с множеством примеров на их сайте.
Я взял на себя задачи по составлению отчетов. совершенно новый уровень скорости выполнения.
Вы можете просто записать его в XML, используя формат Excel XML, и назвать его с расширением .XLS, и он откроется в excel. Вы можете контролировать все форматирование (полужирный, ширину и т. Д.) В заголовке XML-файла.
Существует пример XML из Википедии .