在显示保存对话框时,我想挂钩用户的过滤器类型更改并自动更改文件扩展名.(例如像MSPaint的"另存为"操作.)
使用TSaveDialog并设置UseLatestCommonDialogs:= False,我可以通过以下代码处理此问题.(没有最新的常见对话支持,cource.)
procedure TForm1.SaveDialog1TypeChange(Sender: TObject);
var
FName, Ext: string;
begin
with TSaveDialog(Sender) do
begin
if DirectoryExists(FileName) then // FileName is Empty
exit;
case FilterIndex of
1: Ext := '.png';
2: Ext := '.bmp';
3: Ext := '.jpg';
end;
FName := ChangeFileExt(ExtractFileName(FileName), Ext);
SendMessage(Windows.GetParent(Handle), CDM_SETCONTROLTEXT, 1152, LongInt(PChar(FName)));
end;
end;
Run Code Online (Sandbox Code Playgroud)
我想用Delphi 2007支持XP和vista/7.
我应该使用TFileSaveDialog而不是TSaveDialog与内部包装器?(我必须使用IFileDialogControlEvents来解决COM编程问题?)
或者我可以用TFileSaveDialog实现这一点,它只是标准属性吗?(我的开发环境仍然在XP机器上,所以我从未尝试过.抱歉.)
我认为这是非常常见的任务,但我找不到任何支持Vista/7的示例代码......
作为页面输出的一部分,我在文本区域中包含CSV格式的数据表版本,以便用户可以轻松地将CSV导出复制/粘贴到他们选择的电子表格中.
我想要一种方法来获得一个按钮,当单击该按钮时,将触发一个"保存为"对话框,该对话框将下载已存在于页面上的textarea中的CSV内容.
目的是避免另一次访问数据库以获取CSV导出(当它已经在页面上时),同时为用户提供围绕必须创建新文件并粘贴复制的CSV的快捷方式.
这可能吗?
我有一个来自Inkscape,Illustrator或任何其他应用程序的SVG文件.我想形状转换为lineto
,moveto
,curveto
格式.
我想要的是:
./Appname svgfile outfilewithpath
Run Code Online (Sandbox Code Playgroud)
我将SVG文件作为参数,然后我的应用程序将对象转换为相应的路径.
我想用Selenium
在Python
保存网页上MacOS Firefox
.
到目前为止,我已设法点击COMMAND + S
弹出SAVE AS window
.然而,
我不知道如何:
有人可以帮忙吗?
以下是我用来点击的代码COMMAND + S
:
ActionChains(browser).key_down(Keys.COMMAND).send_keys("s").key_up(Keys.COMMAND).perform()
Run Code Online (Sandbox Code Playgroud)
此外,我使用这种方法的原因是我遇到Unicode编码错误: -
写一个html文件:
file_object = open(completeName, "w")
html = browser.page_source
file_object.write(html)
file_object.close()
Run Code Online (Sandbox Code Playgroud)
写入csv文件:
csv_file_write.writerow(to_write)
Run Code Online (Sandbox Code Playgroud)
错误:
UnicodeEncodeError:'ascii'编解码器不能对位置1中的字符u'\ xf8'进行编码:序数不在范围内(128)
我想知道是否有人可以帮助我.
使用我在网上找到的脚本作为"基础"我在下面写了下面的查询.
Sub Test()
Dim wb As Workbook
Dim ThisSheet As Worksheet
Dim NumOfColumns As Integer
Dim RangeToCopy As Range
Dim RangeOfHeader As Range 'data (range) of header row
Dim WorkbookCounter As Integer
Dim RowsInFile 'how many rows (incl. header) in new files?
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Workbooks.Open Filename:=fNameAndPath
Application.ScreenUpdating = False
'Initialize data
Set ThisSheet = ActiveWorkbook.Worksheets(1)
NumOfColumns = ThisSheet.UsedRange.Columns.Count
WorkbookCounter = 1
RowsInFile = …
Run Code Online (Sandbox Code Playgroud) 我想知道在matlab中将绘图保存到图像文件中时,saveas和print之间有什么区别?在什么情况下都可以使用,在什么情况下只能使用一个?
感谢致敬!
<a href="data:text/csv;base64,CiJpZCIsInJlcXVlc3RfaWQiLCJkYXRlIiwiY29tcGFueV9uYW1lIiwiYWRkcmVzcyIsInBob25lIiwid2Vic2l0ZV91cmwiLCJwbGFjZV9wYWdlX3VybCIsImFkdmVydGlzZXIiLCJyZXZpZXdzIiwicmV2aWV3c190ZXh0Iiwib3duZXJfdmVyaWZpZWQiLCJjYXRlZ29yaWVzIiwibGF0IiwibG5nIiwicGxhY2VodG1sIiwiZ29vZ2xlX3RhZyIsIm1hcHNfdXJsIiwic2l0ZV9kZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uX2F0dHJpYnV0aW9uIiwib3duZXJfZW1haWwiLCJrZXl3b3JkIiwibGlua3MiCiIxNDc4IiwiNTMyIiwiIiwiU3RhcmJ1Y2tzIiwiMTI5OCBIb3dhcmQgU3RyZWV0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwMyIsIig0MTUpIDU2NS03Mzg1IiwiaHR0cDovL3d3dy5zdGFyYnVja3MuY29tLyIsImh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9wbGFjZT9obD1lbiZhc19xPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmFzX2VwcT0mYXNfb3E9JmFzX2VxPSZudW09MTAmbHI9JmFzX2ZpbGV0eXBlPSZhc19zaXRlc2VhcmNoPSZhc19xZHI9YWxsJmFzX3JpZ2h0cz0mYXNfb2NjdD1hbnkmY3I9JmFzX25sbz0mYXNfbmhpPSZzYWZlPWltYWdlcyZ1bT0xJmllPVVURi04JnE9c2FuK2ZyYW5jaXNjbytzdGFyYnVja3MmZmI9MSZocT1zdGFyYnVja3MmaG5lYXI9U2FuK0ZyYW5jaXNjbywrQ0EmY2lkPTQ4NTI1NDg2NzIzODU5NzI1OTMmZWk9bUVWRFRhU05PWWEwbFFmV2haZ3Amc2E9WCZvaT1sb2NhbF9yZXN1bHQmY3Q9cGxhY2VwYWdlLWxpbmsmcmVzbnVtPTImdmVkPTBDQ0lRNGdrd0FRIiwiMCIsIjYiLCIiLCIxIiwiUmVzdGF1cmFudCIsIiIsIiIsIiIsIjAiLCIiLCIiLCIiLCIiLCJzYW4gZnJhbmNpc2NvIHN0YXJidWNrcyIsIkFycmF5IgoiMTQ3OSIsIjUzMiIsIiIsIlN0YXJidWNrcyIsIjEyMzEgTWFya2V0IFN0cmVldCwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDMiLCIoNDE1KSA1MjItMTQzOCIsImh0dHA6Ly93d3cuc3RhcmJ1Y2tzLmNvbS8iLCJodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvcGxhY2U/aGw9ZW4mYXNfcT1zYW4rZnJhbmNpc2NvK3N0YXJidWNrcyZhc19lcHE9JmFzX29xPSZhc19lcT0mbnVtPTEwJmxyPSZhc19maWxldHlwZT0mYXNfc2l0ZXNlYXJjaD0mYXNfcWRyPWFsbCZhc19yaWdodHM9JmFzX29jY3Q9YW55JmNyPSZhc19ubG89JmFzX25oaT0mc2FmZT1pbWFnZXMmdW09MSZpZT1VVEYtOCZxPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmZiPTEmaHE9c3RhcmJ1Y2tzJmhuZWFyPVNhbitGcmFuY2lzY28sK0NBJmNpZD01Mjg4Nzg4OTkwOTk4MjYyOTEzJmVpPW1FVkRUYVNOT1lhMGxRZldoWmdwJnNhPVgmb2k9bG9jYWxfcmVzdWx0JmN0PXBsYWNlcGFnZS1saW5rJnJlc251bT0zJnZlZD0wQ0NrUTRna3dBZyIsIjAiLCIzNiIsIiAiIlN0YXJidWNrcyBoYXMgdGhlIGJlc3QgY29mZmVlIiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIklzbid0IGl0IGVub3VnaCB0aGF0IHRoZXkgYWxtb3N0IG93biBhIG1vbm9wb2x5IGF0IGFsbCBhaXJwb3J0cz8iIiAgLSAgY2l0eXNlYXJjaC5jb20gICAuLi4gICIiSXQgaXMgYSBwaXR5IHRoYXQgYSBjaGFpbiB0aGUgc2l6ZSBvZiBTdGFyYnVjaydzIGlzIGV2ZW4gb24gdGhpcyAiIkJlc3Qgb2YiIiBsaXN0IiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIkV2ZW4gd29yc2UgbW9vZCIiICAtICBjaXR5c2VhcmNoLmNvbSAgIC4uLiAgIiJTZXJ2aWNlIGlzIHVzdWFsbHkgZ3JlYXQiIiAgLSAgY2l0eXNlYXJjaC5jb20gICAuLi4gICIiR3JlYXQgam9iIGd1eXMhIiIgIC0gIGNpdHlzZWFyY2guY29tICAgLi4uICAiIlRoaW5rIGFib3V0IGl0ISIiICAtICBjaXR5c2VhcmNoLmNvbSAgICAiLCIxIiwiQ2FmZSwgQ29mZmVlICZhbXA7IFRlYSwgQ29mZmVlIFNob3BzLCBSZXN0YXVyYW50cywgQ29mZmVlIEhvdXNlcyAmYW1wOyBDYWZlcywgUmVzdGF1cmFudCIsIiIsIiIsIiIsIjAiLCIiLCIiLCIiLCIiLCJzYW4gZnJhbmNpc2NvIHN0YXJidWNrcyIsIkFycmF5IgoiMTQ4MCIsIjUzMiIsIiIsIlN0YXJidWNrcyIsIjE4OTkgVW5pb24gU3RyZWV0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEyMyIsIig0MTUpIDkyMS00MDQ5IiwiaHR0cDovL3d3dy5zdGFyYnVja3MuY29tLyIsImh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcy9wbGFjZT9obD1lbiZhc19xPXNhbitmcmFuY2lzY28rc3RhcmJ1Y2tzJmFzX2VwcT0mYXNfb3E9JmFzX2VxPSZudW09MTAmbHI9JmFzX2ZpbGV0eXBlPSZhc19zaXRlc2VhcmNoPSZhc19xZHI9YWxsJmFzX3JpZ2h0cz0mYXNfb2NjdD1hbnkmY3I9JmFzX25sbz0mYXNfbmhpPSZzYWZlPWltYWdlcyZ1bT0xJmllPVVURi04JnE9c2FuK2ZyYW5jaXNjbytzdGFyYnVja3MmZmI9MSZocT1zdGFyYnVja3MmaG5lYXI9U2FuK0ZyYW5jaXNjbywrQ0EmY2lkPTk1NjE5NTAwNjUwMTYwMTgwMCZlaT1tRVZEVGFTTk9ZYTBsUWZXaFpncCZzYT1YJm9pPWxvY2FsX3Jlc3VsdCZjdD1wbGFjZXBhZ2UtbGluayZyZXNudW09NCZ2ZWQ9MENEQVE0Z2t3QXciLCIwIiwiMzUiLCIiLCIxIiwiQ2FmZSwgQ29mZmVlICZhbXA7IFRlYSwgQ29mZmVlIFNob3BzLCBDb2ZmZWUgSG91c2VzICZhbXA7IENhZmVzIiwiIiwiIiwiIiwiMCIsIiIsIiIsIiIsIiIsInNhbiBmcmFuY2lzY28gc3RhcmJ1Y2tzIiwiQXJyYXkiCg==">Export This</a>
Run Code Online (Sandbox Code Playgroud)
以上是包含基本64位编码的csv数据导出的数据URI.在我的应用程序的报告页面上,我将导出嵌入到每个页面视图中,以便导出不需要再次访问数据库.
在Firefox 3中,单击此链接将打开另存为"下载"对话框.在Chrome 9中单击它不会做任何事情.我可以在Chrome中右键单击保存,它会将解码后的csv写入文件.在Safari中单击它会在浏览器窗口中打开解码的CSV数据,然后我可以手动保存.
在IE中...谁在乎,我是对的吗?
您可以通过将其中的<a>
标记全部复制到名为test.html的空白文件中并在每个浏览器中打开它来重现此测试.它的行为与我的应用程序环境中的行为完全相同.
问题:当用户单击数据URI链接时,是否有办法强制弹出"另存为"对话框,如在Firefox中一样?或者其他一些方法来解决这种不一致问题?
理论上,Firefox,Chrome和Safari都支持数据URI.在实践中.......
如果将以下内容粘贴到chrome中的url栏并尝试右键单击 - >另存为...则另存为...将显示为灰色.有什么方法可以阻止它变灰?
网址:
data:text/html;charset=utf-8,%3C%21DOCTYPE%20html%3E%0D%0A%3Chtml%20lang%3D%22en%22%3E%0D%0A%3Chead%3E%3Ctitle%3EEmbedded%20Window%3C%2Ftitle%3E%3C%2Fhead%3E%0D%0A%3Cbody%3E%3Ch1%3E42%3C%2Fh1%3E%3C%2Fbody%3E%0A%3C%2Fhtml%3E%0A%0D%0A
Run Code Online (Sandbox Code Playgroud) 我尝试在我的代码中添加一个范围,但我没有运气.我希望能够在vba中创建一个脚本,以"另存为"特定工作表或特定范围到pdf.任何帮助将非常感激.
以下是我一直在使用的内容:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"c:\Book1.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Run Code Online (Sandbox Code Playgroud)
谢谢,
我目前有这个代码:
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
pom.click();
}
download('test.html', string);
Run Code Online (Sandbox Code Playgroud)
它string
包含许多以.html文件编写的html代码.
上面的代码工作正常:点击一下按钮,浏览器(chrome)会自动下载一个带有写入其中的字符串内容的html文件.
现在,我想要做的是,而不是自动下载文件的chrome,它应该打开一个"另存为"对话框,并询问用户文件的位置和名称,然后将其下载到该位置.
一个快速简单的回复将非常感激.