在C#中的一个ASP.NET应用程序中,我们采用某种数据集合(SubSonic集合)并将其导出到Excel.我们还想以特定格式导入Excel文件.我正在寻找一个可以用于此目的的库.
要求:
你推荐什么图书馆?您是否将它用于大量数据?还有其他解决方案吗?
现在,我正在使用一个简单的工具来生成稍后由Excel加载的HTML,但是我正在丢失一些功能,加上Excel在我们加载它时会抱怨.我不需要生成图表或类似的东西,只需导出原始数据.
我在想平坦的CSV文件,但Excel是客户的要求.如果我有一个工具可以转换为Excel,我可以直接使用CSV.鉴于Excel 2007是一种基于xml(和压缩)的文件格式,我猜这种库应该很容易找到.但是,对我来说最重要的是你的意见和看法.
编辑:具有讽刺意味的是,在我看来,并以最多的票数回答,最好的Excel导入和导出库根本没有出口.对于所有情况都不是这种情况,但它适用于我的情况.XLS文件仅支持64k行.XLSX最多支持1M.我尝试过的免费库具有糟糕的性能(当你有200k行时,一秒加载一行).我没有尝试过付费的,因为当你需要的是一个快速的XLSX < - > CSV转换例程时,我觉得它们的价值过高.
我正在尝试使用下面显示的代码读取Excel(xlsx)文件.我得到一个"外部表不是预期的格式." 错误,除非我已在Excel中打开该文件.换句话说,我必须首先在Excel中打开文件,然后才能从我的C#程序中读取.xlsx文件位于我们网络上的共享中.如何在不先打开文件的情况下读取文件?谢谢
string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";
using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
DataSet ds = new DataSet();
adaptor.Fill(ds);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试读取Excel文件(Office 2003).有一个Excel文件需要上传并解析其内容.
通过谷歌,我只能找到这些相关(和不充分的主题)的答案:生成Excel文件,阅读Excel XML文件,阅读Excel CSV文件或不完整的废弃项目.我拥有Office 2003,所以如果我需要任何文件,它们都可用.它安装在我的盒子上,但不能也不能安装在我的共享主机上.
编辑:到目前为止,所有答案都指向PHP-ExcelReader和/或关于如何使用它的这篇附加文章.
我有一个包含四个文本列的excel文件:其中一个名为ShortDescription,具有最长的值.我在SQL Server 2008数据库中创建了一个表,其中包含四列,ShortDescription列类型设置为NvarChar(Max).
但是当使用SSIS导入和导出对话框时,即使我将OnTruncation选项设置为Ignore,我仍会在标题中收到上述错误.
我试图清除列数据,并且它成功了(所以我确保问题出在ShortDescription列中).我试图将整个数据复制到另一本excel工作簿,但仍然没有运气.
有任何想法吗 ???
我想将数据从Excel文件(假设Excel 2003/.xls)导入到Sql Server 2008.
尝试将链接服务器添加到JET OLE DB Access驱动程序,当然它在64位计算机上失败.但是当我尝试在试验时丢弃链接服务器时,还有另一个错误,即链接服务器已经/仍然存在!
我也尝试将Excel驱动程序更改为32位(regedit工具)但不确定它是否正在执行任何操作,同样的错误即将发生!
更多细节:说Excel文件中的Table1有5列.我想再次使用5列映射到Database.dbo.Table1,但在表中使用不同的名称.还有办法做这样的导入吗?
我正在使用Visual Studio 2008,我需要DataTable使用Open XML SDK 2.0从Excel工作表创建一个.我需要使用带有工作表第一行的DataTable列创建它,并使用其余值完成它.
有没有人有一个示例代码或链接可以帮助我这样做?
好的,所以我使用FileUploader模块将我的文件从angular上传到我的REST API:
var uploader = $scope.uploader = new FileUploader({
url: api.getUrl('uploadCompetence',null)
});
Run Code Online (Sandbox Code Playgroud)
这将发送到以下POST功能:
router.route('/api/uploadCompetence')
.post(function (req, res) {
// This is where i want to read the file
var competence = Competence.build(req.body.location);
competence.add(function (success) {
res.json({message: 'quote created!'});
},
function (err) {
res.status(err).send(err);
});
})
Run Code Online (Sandbox Code Playgroud)
现在我的目标是读取excel文件,然后将每一行添加到我的数据库.
但是,我不太确定我如何从Node.js我调试我的服务器读取文件,无法在任何地方找到该文件,但从我的Angular应用程序调用api
任何人都可以把我推向正确的方向吗?:)
我知道如何阅读我的xlsx电子表格并循环浏览第一张表格.
它有5张,我遇到的不是第一张.
这是我正在使用的代码,它直接来自文档.你可以看到我试图利用setActiveSheet,但这引发了错误Call to undefined method PHPExcel::setActiveSheet().
代码:
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("cmt_school_data.xlsx");
//$objPHPExcel->setActiveSheet(1);
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table border=1>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
// This loops all cells, even if it is not set.
// By default, only cells that are set will be iterated.
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n"; …Run Code Online (Sandbox Code Playgroud) 我有一个14MB的Excel文件和五个工作表我正在阅读Pandas数据帧,虽然下面的代码有效,但需要9分钟!
有没有人有加快速度的建议?
import pandas as pd
def OTT_read(xl,site_name):
df = pd.read_excel(xl.io,site_name,skiprows=2,parse_dates=0,index_col=0,
usecols=[0,1,2],header=None,
names=['date_time','%s_depth'%site_name,'%s_temp'%site_name])
return df
def make_OTT_df(FILEDIR,OTT_FILE):
xl = pd.ExcelFile(FILEDIR + OTT_FILE)
site_names = xl.sheet_names
df_list = [OTT_read(xl,site_name) for site_name in site_names]
return site_names,df_list
FILEDIR='c:/downloads/'
OTT_FILE='OTT_Data_All_stations.xlsx'
site_names_OTT,df_list_OTT = make_OTT_df(FILEDIR,OTT_FILE)
Run Code Online (Sandbox Code Playgroud) 我正在使用此代码阅读来自excel的日期,该格式为12/5/2012日/月/年.使用PHP EXCEL
PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );
Run Code Online (Sandbox Code Playgroud)
它的工作就像将上述日期'12/5/2012'转换为'2012-12-05'
现在的问题是如果日期是让我们说18/5/2012或者你可以说如果我设置的日期大于12它会给我这个日期18/5/2012以这种格式18/5/2012格式化后
我也试过这个东西
$temp = strtotime( PHPExcel_Style_NumberFormat::toFormattedString($value['A'],'YYYY-MM-DD' );
$actualdate = date('Y-m-d',$temp) ;
Run Code Online (Sandbox Code Playgroud)
这也正在转换日期'12/5/2012'正确但在这种情况下18/5/2012它输出为1970-01-01