__PP__ Ответов: 2

тип содержимого для файлов XLSX


пожалуйста, укажите тип контента для открытия файла xlsx в broowser....

я уже привык
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
но это бесполезно...я не могу открыть файл xlsx...



пожалуйста, помогите мне

2 Ответов

Рейтинг:
12

_Amy

Тип содержимого для файлов .xlsx-это:

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Или используйте это:
Response.ContentType = "application/vnd.ms-excel";

Response.AppendHeader("content-disposition", "attachment; filename=myfile.xls");

Для Excel 2007 и выше тип MIME отличается
Response.ContentType = "application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

Response.AppendHeader("content-disposition", "attachment; filename=myfile.xlsx");

Или если вы пытаетесь прочитать файл то попробуйте сделать это:

DataSet objds = new DataSet();
string ConnStr = "";
if (FileExtension == ".xlsx")
{
    ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=No;IMEX=1\";";
}
else
{
    ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";";

}
OleDbCommand selectCommand = new OleDbCommand();
OleDbConnection connection = new OleDbConnection();
OleDbDataAdapter adapter = new OleDbDataAdapter();
connection.ConnectionString = ConnStr;
string strSQL = "SELECT * FROM [Sheet1$]";
if (connection.State != ConnectionState.Open)
    connection.Open();
OleDbCommand cmd = new OleDbCommand(strSQL, connection);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(objds);
connection.Close();


Всего наилучшего.
--Амит


__PP__

к сожалению, это не работает...Я получил ошибку, как excel не может открыть формат файла...

_Amy

Вы можете разместить свой код здесь?

_Amy

Попробуйте мой обновленный ответ.

__PP__

DataTable dt = новый DataTable();
var Inputs = ProjectAttributeMasterService.GetInputAttributes(7);
Ответ.AddHeader("content-disposition", "attachment;filename=Report.xlsx");
Ответ.Кодировка = "";

Ответ.Значение contentType = "применение/применение/донгов.openxmlformats-officedocument.квалификатором.лист";

Я хочу открыть этот файл excel, и этот файл содержит значения списка(входные данные)...
для этого я использую следующий код..но не знаю, как подключиться к файлу xlsx


Превосходить.Приложение excel = новый Excel.Приложение();
Превосходить.Рабочая книга wb = excel.Приложение.Рабочая тетрадь.Добавить(правда);
Превосходить.Рабочий лист excelSheet = (Excel.Лист)в Excel.Параметру activesheet;


int col = 1;
для (int i = 0; i < Inputs.Count; i++) // Loop through List with for

{
отличный лист.Ячейки[1, col] = входы[i].Метод toString();
седло++;

}

Рейтинг:
0

s.amittyagi

привет,
Я тоже столкнулся с той же проблемой, но у меня есть генератор переменного тока, если он может вам помочь.

(1)Проверьте это на stackoverflow

http://stackoverflow.com/questions/13724988/unable-to-generate-the-xlsx-file

2)Всегда используйте
Ответ.Значение contentType = "применение/донгов.в MS-Excel с";

Просто измените расширение файла с xlsx на xls
и откройте его он будет работать


SALIM MANDREKAR

это не работает

SALIM MANDREKAR

GridView2.Источник данных = ДТ;
GridView2.DataBind();
DirectoryInfo dir = новый DirectoryInfo(@"C:\Reports");
dir.Создавать();
StringBuilder Excelfile = новый StringBuilder("ExcelReport(");
//Excelfile.Append(DateTime.Now.ToString("МММ ДД, гггг "));
Excelfile.Добавить(Тип Datetime.Сейчас.Метод toString("МММ ДД,чч.мм"));
Excelfile.Функции append(").XLSX-файл");
FileInfo file = new FileInfo(@"C:\Reports\" + Excelfile);//C:\List данные\
Файл модулю записи StreamWriter модулю записи StreamWriter=.Сайт createtext();

Stringwriter не stringwriter не = новый stringwriter не();
HtmlTextWriter htmlTextWriter = новый HtmlTextWriter(stringWriter);
GridView2.RenderControl(htmlTextWriter);
модулю записи StreamWriter.Писать(stringwriter не.Метод toString());

htmlTextWriter.Закрывать();
модулю записи StreamWriter.Закрывать();
автор строк.Закрывать();
Сессия.Удалить("TempCatering");
byte[] Content = файл.ReadAllBytes(@"C:\New список отчетов\" + file.Name);
Ответ.Значение contentType ="применение/донгов.openxmlformats-officedocument.квалификатором.лист";
Ответ.SetCookie(new HttpCookie("токен", запрос.Форма["токен"]));
Ответ.AddHeader("content-disposition", "attachment; filename=" + file.Name);
Ответ.BufferOutput = true;
Ответ.Выходной поток.Write(Content, 0, Content.Длина);
Ответ.Конец();