本系统是用来using org.in2bits.MyXls;在服务器端自动生成excel表格;
private void CreaateDir(string path1)
{
if (!Directory.Exists(path1))
{
Directory.CreateDirectory(path1);
}
}
private void Output(HtmlTable dt)
{
string path = string.Format("{0:yyyyMMdd}", Convert.ToDateTime(riqi));
path = "..\\ribaobiaoexcel\\" + path;
CreaateDir(Server.MapPath(path));
string filename = ribaobiaobianhao + ".xls";//excel文件名称
string filepath = path + "\\" + filename;
org.in2bits.MyXls.XlsDocument doc = new org.in2bits.MyXls.XlsDocument();
//doc.FileName = "ylrk"+string.Format("{0:yyyyMMdd}", Convert.ToDateTime(riqi))+".xls";//excel文件名称
// doc.FileName = Server.MapPath("~/Demo.xls");
org.in2bits.MyXls.Worksheet sheet = doc.Workbook.Worksheets.AddNamed("sheet1");//Excel工作表名称
org.in2bits.MyXls.Cells cells = sheet.Cells;
...
//message.Text = Server.MapPath(filepath);
if (File.Exists(Server.MapPath(filepath)))
{
File.Delete(Server.MapPath(filepath));//删除
}
doc.Save(Server.MapPath(filepath)); //保存到指定位置
// 往基础表中添加数据
string sqlstr = "select * from ribaobiao where ribaobiao_bianhao='" + ribaobiaobianhao + "'";
DataSet ds = new DataSet();
SqlConnection conn = mc.myconn();
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, conn);
SqlCommandBuilder commbd = new SqlCommandBuilder(myda);
myda.Fill(ds, "xxxx");
if (ds.Tables["xxxx"].Rows.Count != 0)
{
message.Text = "<script>alert(\"记录已存在!\");</script>";
}
else
{
DataRow dr = ds.Tables["xxxx"].NewRow();
...
dr["file_path"] = filepath;
dr["file_name"] = filename;
ds.Tables["xxxx"].Rows.Add(dr);
myda.Update(ds, "xxxx");
....}}
windows下文件上传的路径是(windows桌面路径类似于C:\lj\ljh\riba)
path = "..\\ribaobiaoexcel\\" + path;//注意
CreaateDir(Server.MapPath(path));
string filename = ribaobiaobianhao + ".xls";//excel文件名称
string filepath = path + "\\" + filename;//注意
文件上传到部署项目下面的ribaobiaoexcel下面一个日期文件夹下如 相对路径是 项目文件夹\ribaobiaoexcel\20150512\xxx.xls
filepath="..\\ribaobiaoexcel\\20140927\\41kcrb20140927.xls";//注意在代码中“\\"前面一个\为转移字符,实际存到数据库中
数据变为了"..\ribaobiaoexcel\20140927\41kcrb20140927.xls",这样在浏览器IE显示的时候可以自动识别出来,但是在火狐浏览器中却无法识别。
这里使用了sqlsever中的字符替代函数REPLACE(file_path,'\','/'),这个在sqlsever中时正确的,但是到了程序中,'\'可能被当成转移字符了,因此sql语句显示的时候直接就是'',因此我们需要将'\',改为'\\'。即可达到目的。
private void CreaateDir(string path1)
{
if (!Directory.Exists(path1))
{
Directory.CreateDirectory(path1);
}
}
private void Output(HtmlTable dt)
{
string path = string.Format("{0:yyyyMMdd}", Convert.ToDateTime(riqi));
path = "..\\ribaobiaoexcel\\" + path;
CreaateDir(Server.MapPath(path));
string filename = ribaobiaobianhao + ".xls";//excel文件名称
string filepath = path + "\\" + filename;
org.in2bits.MyXls.XlsDocument doc = new org.in2bits.MyXls.XlsDocument();
//doc.FileName = "ylrk"+string.Format("{0:yyyyMMdd}", Convert.ToDateTime(riqi))+".xls";//excel文件名称
// doc.FileName = Server.MapPath("~/Demo.xls");
org.in2bits.MyXls.Worksheet sheet = doc.Workbook.Worksheets.AddNamed("sheet1");//Excel工作表名称
org.in2bits.MyXls.Cells cells = sheet.Cells;
...
//message.Text = Server.MapPath(filepath);
if (File.Exists(Server.MapPath(filepath)))
{
File.Delete(Server.MapPath(filepath));//删除
}
doc.Save(Server.MapPath(filepath)); //保存到指定位置
// 往基础表中添加数据
string sqlstr = "select * from ribaobiao where ribaobiao_bianhao='" + ribaobiaobianhao + "'";
DataSet ds = new DataSet();
SqlConnection conn = mc.myconn();
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, conn);
SqlCommandBuilder commbd = new SqlCommandBuilder(myda);
myda.Fill(ds, "xxxx");
if (ds.Tables["xxxx"].Rows.Count != 0)
{
message.Text = "<script>alert(\"记录已存在!\");</script>";
}
else
{
DataRow dr = ds.Tables["xxxx"].NewRow();
...
dr["file_path"] = filepath;
dr["file_name"] = filename;
ds.Tables["xxxx"].Rows.Add(dr);
myda.Update(ds, "xxxx");
....}}
windows下文件上传的路径是(windows桌面路径类似于C:\lj\ljh\riba)
path = "..\\ribaobiaoexcel\\" + path;//注意
CreaateDir(Server.MapPath(path));
string filename = ribaobiaobianhao + ".xls";//excel文件名称
string filepath = path + "\\" + filename;//注意
文件上传到部署项目下面的ribaobiaoexcel下面一个日期文件夹下如 相对路径是 项目文件夹\ribaobiaoexcel\20150512\xxx.xls
filepath="..\\ribaobiaoexcel\\20140927\\41kcrb20140927.xls";//注意在代码中“\\"前面一个\为转移字符,实际存到数据库中
数据变为了"..\ribaobiaoexcel\20140927\41kcrb20140927.xls",这样在浏览器IE显示的时候可以自动识别出来,但是在火狐浏览器中却无法识别。
这里使用了sqlsever中的字符替代函数REPLACE(file_path,'\','/'),这个在sqlsever中时正确的,但是到了程序中,'\'可能被当成转移字符了,因此sql语句显示的时候直接就是'',因此我们需要将'\',改为'\\'。即可达到目的。